matlab 错误问题

ts=0;te=5;dt=0.001;
sys=tf([1,3],[1,4,4]);
t=ts:dt:te;
f=exp(-t).*Heaviside(t);
y=lsim(sys,f,t);
plot(t,y);
xlabel('time(sec)');
ylabel('y(t)');
??? Error using ==> rfinputs
Input data U contains Inf or NaN.
哪里错了?????

问题出在Heaviside函数上,它在阶跃时刻的值为NaN,这样导致你的变量f包含NaN值,然后作为输入调用lsim就会导致上述错误。

其实你完全没必要使用Heaviside函数,直接把
f=exp(-t).*Heaviside(t);
改成

f=exp(-t);
就可以了。不用担心仿真结果是否正确,没问题。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-20
我在2010a上运行时没有问题的