einige Fehler im Code Es gibt sehen so berechnet oder fest einprogrammiert werden:
- das Array
V
initialisiert Ausgangsform 0
während in Matlab beginnt die Array-Index von 1
- da Sie
i=0
aus dem obigen Grund, in der ersten Iteration der Schleife initialisiert haben, versuchen Sie t(0)
- Anruf zuzugreifen ing die
plot
Funktion als plot(V(i),t(i))
Sie nur einen Punkt plot zudem i
am Ende der for-Schleife erhöht wird, macht V(i)
und t(i)
ist nicht wirklich
- in der Schleife berechnet Sie nicht
t(i+1)
zugreifen, wenn t
der Schleifenindex ist da es ha, noch nicht
Sie können den Code ändern wie folgt bewertet worden:
% 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')
hoffe, das hilft,
Array-Index ‚Qapla in Matlab beginnt von 1, während Sie' V (0) 'haben. –
Ja, ich suche danach und ich habe es! Dann ändere ich die Werte für v (1). Aber Index überschreitet Matrix Dimension Fehler auftreten –
Sie haben auch 't (i)': bei der ersten Wiederholung der for-Schleife ist 'i' immer noch" 0 ". –