当我初始化v(0)= 0和t(0)= 0时,我被卡住了。是不是不首先创建一个空数组的问题?非常感谢您的帮助。
T= 0.001;
C= 0.004;
n=0;
k=0;
v(0)=k;
t(0)=k;
while v(n)<60
v(n+1)= T.*(A(n)-C.*(v(n)).^2)+v(n);
t(n+1)= (n-1)*T;
n=n+1;
end
n60=n
t60=(n60-1)*T
Matlab中的索引从1开始。
因此v(0)=k
,t(0)=k
不合法。您宁愿:
v(desired arraysize)=k;
t(desired arraysize)=k;
进行预分配。和
v(1)=k;
t(1)=k;
初始化第一个值。
因此v(n)<60
也会给您一个错误。
你可以写:
v(1) = 0;
while v(n) < 60+1
v(n+1)= T.*(A(n)-C.*(v(n)).^2)+v(n);
t(n+1)= (n-2)*T; %not completetely sure with this line, you should check it again.
n=n+1;
end
来自评论:
只需设置t(1)= 0和v(1)= 0,您就需要从其他语言重新思考,索引从1开始。这基本上意味着您不能使用索引来代替通常需要的“时间”额外的时间向量,将您的值与特定时间相关联
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句