2011-04-24 41 views
-1

循環:當迭代MATLAB循環時,它不會迭代到指定的值 - 爲什麼?

for h=1:t_max 
    REST OF CODE 
end 

如果T_MAX等於100,例如,該循環迭代僅到99或T_MAX-1。

有人可以幫忙嗎?

+0

您需要提供更多詳細信息。對於h = 1:10;顯示器(H);如預期的那樣,「結束」打印10次。 – 2011-04-24 19:42:38

+0

如果您隱藏我們的「REST OF CODE」,我們無法提供幫助。 – abcd 2011-04-24 21:21:35

回答

4

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

檢查你沒有修改循環體中的t_max。 for循環的語義是這樣的,它將執行t_max次,檢查official documentation

+2

迭代的矩陣是在for循環操作開始時計算的,並修改用於在for循環體中計算它的一個或多個值對循環沒有影響。例如嘗試't = 5;對於i = 1:t,t = 10; DISP(ⅰ);結束「,你會發現它只能達到5,而不是10。 – SCFrench 2011-04-24 23:29:31