基于cputime的MATLAB条件代码执行

时间:2011-06-09 08:44:37

标签: matlab concurrency

我有一个MATLAB代码,对于某些输入案例需要无限时间来执行。我想从我的代码的执行中消除那些使我的MATLAB函数执行时间超过X分钟的输入值,因为MATLAB意识到执行时间太长。你知道这样做的方法吗?如果它是用C语言编写的话,我可以通过concurrecy来做到这一点,但我对MATLAB中的并发性并不了解。

事实上,当我执行Control-C(我在Windows中)来中断这种无限执行时,代码实际上似乎正确完成。

非常感谢。

1 个答案:

答案 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