【问题标题】:MATLAB conditional code execution based on cputime基于cputime的MATLAB条件代码执行
【发布时间】:2011-06-09 08:44:37
【问题描述】:

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

事实上,当我使用 Control-C(我在 windows 中)来中断这样的无限执行时,代码实际上似乎可以正确完成。

非常感谢。

【问题讨论】:

    标签: matlab concurrency


    【解决方案1】:

    如果你在一个你可以控制的循环中运行,你可以使用 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
    

    【讨论】:

      猜你喜欢
      • 2016-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-27
      • 2011-08-25
      • 1970-01-01
      相关资源
      最近更新 更多