这让我发疯,我只是想使用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
最后,发生此问题是因为在我的库中某个地方有一个带有修改后的fit函数的工具箱,该工具箱导致了该错误
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句