这让我发疯,我只是想使用 Matlab 的拟合函数 (r2017a) 将高斯曲线拟合到某些数据。
gaussEqn = 'a*exp(-((x-b)/c)^2)+d'
f = fit(x,y,gaussEqn);
但我得到这个错误:
Error using fit>iFit (line 340)
Invalid data type. Second argument must be numeric or logical.
然而我的变量都是数字......
whos x
Name Size Bytes Class Attributes
x 101x1 808 double
和
whos y
Name Size Bytes Class Attributes
y 101x1 808 double
为什么发生这种情况?此时,我将使用不同的函数来拟合我的数据,但它没有任何意义(并且无法访问内部拟合函数 iFit)
要求编辑:
x 和 y 变量是时间和感兴趣矩阵的平均值;x 例如:
fs = 1000;
w = .1;
t = (-w:1/fs:0) * 1000; x = t';
y 变量有点复杂,它是估计神经滤波器的均值,由我编写的另一个函数计算得出:
STA = genSTA(find(spkV),NSr(:,:,stimI),w,fs);
whos STA
Name Size Bytes Class Attributes
STA 25x101 20200 double
y = mean(STA,1);
whos y
Name Size Bytes Class Attributes
y 101x1 808 double
最后,这个问题的发生是因为在我的库中的某个地方有一个工具箱修改了拟合函数导致了错误