Индексы в 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
от комментариев:
просто установить т (1) = 0 и v (1) = 0, то просто необходимо пересмотреть с других языков, что индексирование начинается с 1. Это в основном означает, что вы не можете использовать индекс в качестве замены «времени», вам обычно нужен дополнительный вектор времени, который связывает ваши значения с определенным временем.
Таким образом, t является переменной для времени. В момент времени t = 0 скорость (v) должна быть равна 0. Поэтому, если я назову v (0), он отвечает значением. Предполагается, что v (1) оценивается по петле. Так или иначе, чтобы это сделать? – user2521768
Подождите, я понял. Я вижу ошибку на моем пути. Спасибо огромное! – user2521768