Matlab中的循环

用户名

当我初始化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)=kt(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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章