这让我发疯了,我只是想用 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
答案1
最后,发生此问题是因为我的库中的某个地方有一个带有修改过的拟合函数的工具箱,该工具箱导致了错误