Matlab拟合函数不接受“数字”数据类型

Matlab拟合函数不接受“数字”数据类型

这让我发疯了,我只是想用 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

最后,发生此问题是因为我的库中的某个地方有一个带有修改过的拟合函数的工具箱,该工具箱导致了错误

相关内容