为什么循环工作(Matlab)没有定时?

时间:2014-11-14 16:12:44

标签: matlab while-loop

我是半高级的,并且不明白为什么此代码无法正常执行。我希望代码在特定时间执行某些操作。感谢您的输入。 /汉克

running=1;

while running==1

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

2 个答案:

答案 0 :(得分:2)

可能是因为second返回一个双精度数组,并且浮点精度为double,条件second(now)==59可能永远不会成立。我会用以下内容替换它:abs(second(now)-59)<1e-3或您认为合适的任何阈值。 hourminute返回的值是整数,因此相等测试应该有效。

答案 1 :(得分:1)

据我所知,second不返回整数。因此,第二(现在)== 59的平等是暧昧的。

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