我有一个MATLAB代码,对于某些输入案例需要无限时间来执行。我想从我的代码的执行中消除那些使我的MATLAB函数执行时间超过X分钟的输入值,因为MATLAB意识到执行时间太长。你知道这样做的方法吗?如果它是用C语言编写的话,我可以通过concurrecy来做到这一点,但我对MATLAB中的并发性并不了解。
事实上,当我执行Control-C(我在Windows中)来中断这种无限执行时,代码实际上似乎正确完成。
非常感谢。
答案 0 :(得分:3)
如果你在一个你可以控制的循环中运行,你可以使用tic和toc来找出你需要多长时间,如果那个太长则停止:
start = tic;
for i=1:1000000
if (mod(i,1000)==0)
if (toc(start) > 2) % here, 2 seconds
error('Took toooo loooong');
end
end
end