我正在将自定义函数拟合到我的数据中。
获得拟合后,我想获得类似拟合函数的函数句柄之类的东西,包括设置为拟合找到的参数的参数。
我知道我可以得到模型
formula(fit)
我可以通过以下方式获取参数
coeffvalues(fit)
但有没有什么简单的方法可以将两者结合在一起呢?
这个小循环就可以解决这个问题:
x = (1:100).'; %'
y = 1*x.^5 + 2*x.^4 + 3*x.^3 + 4*x.^2 + 5*x + 6;
fitobject = fit(x,y,'poly5');
cvalues = coeffvalues(fitobject);
cnames = coeffnames(fitobject);
output = formula(fitobject);
for ii=1:1:numel(cvalues)
cname = cnames{ii};
cvalue = num2str(cvalues(ii));
output = strrep(output, cname , cvalue);
end
output = 1*x^5 + 2*x^4 + 3*x^3 + 4*x^2 + 5*x + 6
该循环需要适应您的拟合系数的数量。
编辑:为了完全回答问题,进行了两个细微的更改。
fhandle = @(x) eval(output)
返回一个函数句柄。其次,程序给出的输出不起作用,因为幂运算读取 .^ 而不是 x,这显然可以替换为
strrep(output, '^', '.^');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)