1

我想限制我在代码中使用的函数的执行运行时间。可能吗?

我正在使用带有 MATLAB R2015a 的 Windows 10(与之前提出的这个问题不同:Matlab time limit for function execution),所以是否有任何更改使其成为可能,或者是否有任何调整使其成为可能?

例如:

H = transpose(homograpyMatrix);
t = projective2d(homograpyMatrix);
result = imwarp(img, t);  % If execution takes more than X seconds - stop running

如果 imwarp 的计算时间太长(超过预定义的 X 秒),我希望 MATLAB 停止正在运行的进程。可能吗?

请注意,我不想在循环中使用 tic-toc 作为停止条件,因为情况并非如此。

4

1 回答 1

1

你有两个选择:

并行计算工具箱

使用Parallel Computing Toolbox,您可以定义空闲计算的超时时间。重要的是要记住,只要您的进程进入parfor循环或使用parfeval.

硬编码超时

在这种情况下,您将实现一个硬编码的超时变量并定期检查它以评估您是否必须停止正在运行的进程。

于 2016-01-19T14:19:02.093 回答