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 から始まることを他の言語から再考する必要があります。これは基本的に、通常必要な「時間」の代わりにインデックスを使用できないことを意味します。値を特定の時間に関連付ける追加の時間ベクトル