私はここで問題を解決できません! 私はV(0)= 0をV(1)= 0に変更し、 'インデックスは行列の次元を超えています。'発生したMATLAB(インデックスは正の整数または論理でなければなりません)
i=0;
m=70;
C=10;
g=9.81;
V(0)=0;
for t=0:0.25:50
V(i+1)=V(i)+(g-(C*V(i))/m)*(t(i+1)-t(i));
i=i+1;
end
plot(V(i),t(i))
私はここで問題を解決できません! 私はV(0)= 0をV(1)= 0に変更し、 'インデックスは行列の次元を超えています。'発生したMATLAB(インデックスは正の整数または論理でなければなりません)
i=0;
m=70;
C=10;
g=9.81;
V(0)=0;
for t=0:0.25:50
V(i+1)=V(i)+(g-(C*V(i))/m)*(t(i+1)-t(i));
i=i+1;
end
plot(V(i),t(i))
は、あなたのコード内のいくつかの誤りがあり多くのためhttps://www.mathworks.com/help/matlab/learn_matlab/matrices-and-arrays.html?requestedDomain=www.mathworks.comを参照してください、その配列の値を計算するか、ハードコーディングする必要があるかどうかわかりません:配列V
が初期化されている
0
ながら、あなたは、ループの最初の反復では、あなたがt(0)
i=0
を初期化してきたので、MATLABでの配列のインデックスは1
i
をインクリメントし、さらに、一点のみをプロットしますplot(V(i),t(i))
としてplot
機能をINGの、V(i)
とt(i)
が実際にループでt
がループインデックスである場合は、t(i+1)
にアクセスすることはできませんになり以下のように、それはまだを評価されていないHAので、あなたはあなたのコードを変更することができます。
% i=0;
m=70;
C=10;
g=9.81;
% V(0)=0;
% Initialize the arrayV
V(1)=0;
% Define the time increment
dt=0.25
% Define the time samples
t=0:dt:50
% for t=0:0.25:50
% Loop over the time samples
for idx=1:length(t)-1
% V(i+1)=V(i)+(g-(C*V(i))/m)*(t(i+1)-t(i));
V(idx+1)=V(idx)+(g-(C*V(idx))/m)*dt;
% i=i+1;
end
% plot(V(i),t(i))
plot(t,V)
grid minor
xlabel('Time')
ylabel('Speed')
01このことができます
希望、あなたが持っている一方で、MATLABで
Qapla」
配列Vは別の場所で宣言されていますか?あなたの最初の要素にアクセスしようとしているようですが、配列はまだ初期化されていません。 私はそう
実際に私は自由落下運動のv/tグラフを作ろうとしています –
配列のインデックスは、1から始まり、 'V(0)'。 –
はい、私はそれを検索し、私はそれを得ました!次に、v(1)の値を変更します。しかし、インデックスが行列の次元を超えています。 –
あなたは 't(i)'も持っています:forループの最初の反復で 'i'は' 0'です。 –