MATLAB初学者的问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 14:20:06
t=0:0.01:5;
an=zeros(size(t));
vn=zeros(size(t));
N=length(t);
for i=1:N-1
if i>=N/5 & i<=2*N/5
an(i)=-20;
else if i>=2*N/5 & i<=3*N/5
an(i)=20;
else
an(i)=0;
end
end
vn(i)=vn(i-1)+an(i)*t; %这句话出问题了,但是不知道怎么回事
end
plot(t,vn)
刚学matlab用它做一个速度的模型,在加速度转换到速度的地方出现问题了,请大侠指教!

不问数学对错,只说三个编程问题:

1。i从1到N-1不行,要从2到N,否则vn(i-1)无意义。
2。elseif连写,这样可以少一个end,内部运行也快。
3。t当然不能这么乘了vn(i)=vn(i-1)+an(i)*t

vn(i) = vn(i-1) + an(i)*t(i) 可以

你i从1开始循环,那么vn(i-1)就是从0开始,但matlab的数组时从1开始的,于是乎,明白了吗