关于matlab,simulink仿真问题,一直有Error in fun (line 2) k=x(1);,调用lsqcurvefit就出错open_system('sim1');sim('sim1');load dataty.mat;x0=[1,2,2];t=out(1,:);y=out(2,:);x=lsqcurvefit('fun',x0,t,y);plot(t,fun(x,t),'-',t,y,'-*');function y=f
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/04 00:35:42
关于matlab,simulink仿真问题,一直有Error in fun (line 2) k=x(1);,调用lsqcurvefit就出错open_system('sim1');sim('sim1');load dataty.mat;x0=[1,2,2];t=out(1,:);y=out(2,:);x=lsqcurvefit('fun',x0,t,y);plot(t,fun(x,t),'-',t,y,'-*');function y=f
关于matlab,simulink仿真问题,一直有Error in fun (line 2) k=x(1);,调用lsqcurvefit就出错
open_system('sim1');
sim('sim1');
load dataty.mat;
x0=[1,2,2];
t=out(1,:);
y=out(2,:);
x=lsqcurvefit('fun',x0,t,y);
plot(t,fun(x,t),'-',t,y,'-*');
function y=fun(x,t)
k=x(1);
zeta=x(2);
omega=x(3);
s1=-zeta.*omega+omega.*sqrt(zeta.^2-1);
s2=-zeta.*omega-omega.*sqrt(zeta.^2-1);
if zeta>1
y=k*(1+(s2.*exp(s1.*t)-s1.*exp(s2.*t))/(s1-s2));
elseif zeta==1
y=k*(1-exp(-omega.*t)-omega.*t.*exp(-omega.*t));
elseif zeta>0&&zeta
关于matlab,simulink仿真问题,一直有Error in fun (line 2) k=x(1);,调用lsqcurvefit就出错open_system('sim1');sim('sim1');load dataty.mat;x0=[1,2,2];t=out(1,:);y=out(2,:);x=lsqcurvefit('fun',x0,t,y);plot(t,fun(x,t),'-',t,y,'-*');function y=f
你这个function没 end或者结束语句
其它看不出来,没有完整的仿真文件等,没法判断