2014-11-14 20 views
0

我是半高級的,不明白爲什麼這段代碼無法正確執行。我希望代碼在特定時間執行某些操作。感謝您的輸入。 /漢克爲什麼不在循環工作(Matlab)時計時?

running=1; 

while running==1 

    if hour(now)==17 & minute(now)==4 & second(now)==59 
     (Do Stuff) 
     running=0; 
    end 
end 

回答

2

這可能是因爲second返回一個雙數組,浮點運算雙精度的條件second(now)==59可能永遠是正確的。我會用如下代替它:abs(second(now)-59)<1e-3或您認爲合適的任何閾值。由hourminute返回的值是整數,所以相等性測試應該是有效的。

1

據我所知,second不返回一個整數。因此,第二(現在)== 59的平等是有意義的。

最好使用round(second(now))==59