Matlab中的自定义函数拟合,nlinfit问题!

请问,nlinfit函数中()括号里输入的都是什么东西?什么意义?以下是我自己搞的一个拟合程序,但出了问题,请高手赐教!!!>>t=[1790:10:2000];>>p=... 请问,nlinfit函数中()括号里输入的都是什么东西?什么意义?
以下是我自己搞的一个拟合程序,但出了问题,请高手赐教!!!
>> t=[1790:10:2000];
>> p=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4];
>> ft=inline('a(1)*a(2)/(a(1)+exp(-a(3)*t)*a(2)-exp(-a(3)*t)*a(1))','a','t');
>> a=nlinfit(t,p,ft,[1 1 1])
??? Error using ==> nlinfit at 115
The inline model function generated the following error:
Error using ==> inlineeval at 15
Error in inline expression ==> a(1)*a(2)/(a(1)+exp(-a(3)*t)*a(2)-exp(-a(2)*t)*a(1))
??? Error using ==> mrdivide
Matrix dimensions must agree.
我尤其不知道nlinfit中最后那个矩阵表示什么意思啊?
非常感谢~
在线等~
展开
 我来答
springehome
2010-05-30 · TA获得超过1917个赞
知道小有建树答主
回答量:238
采纳率:100%
帮助的人:474万
展开全部
%[1 1 1]就是给a(1),a(2),a(3) 参数赋予初值
%程序运行不了是因为你定义的内联函数inline有错,注意t为数组运算符得用点
t=[1790:10:2000];
p=[3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9 76.0 92.0 106.5 123.2 131.7 150.7 179.3 204.0 226.5 251.4 281.4];
ft=inline('a(1).*a(2)./(a(1)+exp(-a(3).*t).*a(2)-exp(-a(3).*t).*a(1))','a','t');
a=nlinfit(t,p,ft,[1 1 1])
%a = 1.0000 94.7727 1.0000
%但是给出警告,拟合结果不好,得参考帮助设置一下optimset
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式