在Matlab中拟合模型时出错

时间:2017-02-21 06:08:59

标签: matlab curve-fitting

我正在尝试将模型拟合到具有3个变量和4个参数的数据,如下所示(在this Matlab示例之后):

ft = fittype(@(a,b,c,d,x,y,z) a*(x.^b).*(y.^c).*(z.^d),...
 'independent',{'x','y','z'},'dependent',{'w'},'coefficients',...
{'a','b','c','d'})

需要针对a, b, c的给定数据评估dx,y,z。但是Matlab给了我一个错误,并且不允许我创建一个fittype对象。错误如下:

Expression @(a,b,c,d,x,y,z) a*(x.^b).*(y.^c).*(z.^d) is not a valid MATLAB expression, has non-scalar coefficients, or cannot be evaluated:
Not enough inputs to FITTYPE function.

我还在StackOverflow上阅读了thisthis问题,但没有完全理解我哪里出错了。

1 个答案:

答案 0 :(得分:0)

如果您尝试使用此类型,它将是执行命令;

ft = fittype(@(a,b,c,x,y) a*(x.^b).*(y.^c),...
 'independent',{'x','y'},'dependent',{'w'},'coefficients',...
{'a','b','c'})

在你的命令类型中,有太多的表达式,Matlab无法处理。 '独立' fittype fucntion的一部分只需要1对。