我刚收到一位同事的剧本,第一行是:
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版本。如果可以,请告诉我如何重拨电话以防止错误。