MATLAB:如果函数花费的时间过长,则强制函数返回解决方案



我正试图将10000个经验数据集一个接一个地提供给一个函数。每次的数据集都是相似的,但也有一些小的差异。

通常情况下,例程运行良好,但偶尔(由于微小的差异)会给函数提供一个无法解决的数据集,或者在几个小时内无法解决。

如果数据集没有被使用,我也不太在乎。有没有办法编辑函数,让它说"如果这个数据集花费的时间太长,只需向脚本返回一些任意值,这样我们就可以继续"?

您可以在输入函数时使用'now'函数来获取当前日期编号。在函数中的某个时刻,您可以再次使用它,并检查差异,看看delta是否长于您的等待阈值(以秒为单位)。

starttime = now;
% processing block
if (now - starttime) > 3600
    return (junk answer)
end

在函数中,在t_start = tic();启动时调用它。

您可以使用t_elapsed = toc(t_start); 检查然后检查经过的秒数

如果您的函数有很多循环,您可以检查每个循环的toc(t_start),如果经过的时间太长,则返回一些错误条件。

最新更新