#matlab #loops #iteration #max
#matlab #циклы #итерация #макс
Вопрос:
цикл:
for h=1:t_max
REST OF CODE
end
например, если t_max равно 100, цикл повторяется только до 99 или t_max-1.
Кто-нибудь может помочь?
Комментарии:
1. Вам необходимо предоставить более подробную информацию.
for h=1:10; display(h); end
печатается 10 раз, как и ожидалось.2. мы не сможем помочь, если вы спрячетесь
REST OF CODE
от нас.
Ответ №1:
Является ли t_max вычисляемым значением? Возможно, оно заканчивается очень близко к 100, но не совсем там, и из-за округления оно будет отображаться как 100 в настройках формата по умолчанию. Вот пример, использующий меньшее значение t_max:
>> t_max=4.9999999999999
t_max =
5.0000
Обратите внимание, как t_max выглядит как 5, когда на самом деле оно немного меньше 5. В цикле for он будет вести себя следующим образом:
>> for i=1:t_max, disp(i),end
1
2
3
4
который имеет вид только повторения до t_max — 1. Но увеличение формата и повторный просмотр t_max покажет значение с большей точностью:
>> format long; t_max
t_max =
4.999999999999900
Ответ №2:
Убедитесь, что вы не изменяете t_max в теле цикла. Семантика цикла for такова, что он будет выполняться t_max раз, проверьте официальную документацию.
Комментарии:
1. Повторяемая матрица вычисляется в начале операции цикла for, и изменение значения или значений, используемых для ее вычисления в теле цикла for, не влияет на цикл. Попробуйте, например
t=5;for i=1:t, t=10; disp(i); end
, вы увидите, что оно увеличивается только до 5, а не до 10.