При итерации цикла MATLAB он не повторяется до указанного значения. Почему? - PullRequest
0 голосов
/ 24 апреля 2011

петля:

for h=1:t_max
    REST OF CODE
end

например, если t_max равно 100, цикл повторяется только до 99 или t_max-1.

Кто-нибудь может помочь?

Ответы [ 2 ]

4 голосов
/ 25 апреля 2011

Является ли 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
0 голосов
/ 25 апреля 2011

Убедитесь, что вы не изменяете t_max в теле цикла.Семантика цикла for такова, что он будет выполняться t_max раз, проверьте официальную документацию .

...