2014-11-14 55 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

相关问题