-1

当我初始化 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
4

1 回答 1

2

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 开始。这基本上意味着您不能使用索引来代替您通常需要的“时间”一个额外的时间向量,它将您的值与特定时间相关联

于 2013-11-11T09:35:54.493 回答