在fittype中使用strcmp时出错

时间:2016-08-11 05:10:41

标签: matlab curve-fitting strcmp model-fitting

我刚收到一位同事的剧本,第一行是:

VonMisesModel=fittype(@(A,k,base,peakloc,x) (base + A*exp(k*cos((pi/180)*(x-peakloc)))/(2*besseli(0,k)*pi)),'independent','x');

他用这个脚本做了很多处理,所以我想这段代码对他有用。

然而,当我调用它时,我收到以下错误:

>> VonMisesModel=fittype(@(A,k,base,peakloc,x) (base + A*exp(k*cos((pi/180)*(x-peakloc)))/(2*besseli(0,k)*pi)),'independent','x');

Error using strcmp
The number of rows of the string matrix must match the number of elements in the cell.

Error in cell/ismember (line 38)
    match = strcmp(a,b);

Error in fittype>iTestAnonymousFunctionArgumentOrder (line 786)
[~, coefficientLocations] = ismember( obj.coeff, arguments );

Error in fittype>iCreateFromAnonymousFunction (line 533)
iTestAnonymousFunctionArgumentOrder( obj, theFcn )

Error in fittype>iCreateFittype (line 355)
obj = iCreateFromAnonymousFunction( obj, varargin{:} );

Error in fittype (line 328)
            obj = iCreateFittype( obj, varargin{:} );

我想重申,这是独立脚本中的第一行。在调用此行之前不会进行任何处理。

这个错误对我来说似乎并不直观。我猜测可能导致它的原因还没有找到解决方案。有谁知道为什么会出现这个错误?

修改

fittype函数的定义似乎随着时间的推移而发生了变化。

当我使用比matlab-2012a更新的Matlab版本时,会出现问题中的错误。

但是,当我使用matlab-2012a时,错误是而不是

我之前的matlab发行版根本不包含fittype函数。

为了使此脚本中的其他功能正常工作,我需要调用fittype来使用新的(呃)Matlab版本。如果可以,请告诉我如何重拨电话以防止错误。

0 个答案:

没有答案