用matlab拟合 y=a*exp(x-b) 怎么写?

错了,是y=c*exp(b(x-a))

第1个回答  2013-07-03
x=[......]
y=[......]
fun=inline('a(1)*exp(x-a(2))','a','x')
a=lsqcurvefit(fun,[0 0],x,y)
a=a(1)
b=a(2)追问

fun=inline('a(1)*exp(a(3)*(x-a(2)))','a','x')
a=lsqcurvefit(fun,[0 0 0],x,y) a=a(1) b=a(2) c=a(3)
xx=min(x):max(x); yy=a*exp(c*(xx-b)); plot(x,y,'o',xx,yy,'r')
提示错误,有什么问题

第2个回答  2013-07-03
你的拟合数据呢。发出来啊。
改成如下,试试。要点乘的
fun=inline('a(1).*exp(a(3).*(x-a(2)))','a','x')追问

我的x,y每个都有500个,我是导进去的。

追答

改成我上面的试试。

追问

提示
Attempted to access a(2); index out of bounds because numel(a)=1.

Error in UN (line 7)
b=a(2)

追答

fun=inline('a(1).*exp(a(2).*(x-a(3)))','a','x')

本回答被提问者采纳
相似回答