我想限制我在代码中使用的函数的执行运行时。有可能吗?
我正在使用带有matlab R2015a的Windows 10(不像之前提到过的这个问题:Matlab time limit for function execution)所以我想知道是否有任何改变使其成为可能或者是否有任何调整使其成为可能?
例如:
H = transpose(homograpyMatrix);
t = projective2d(homograpyMatrix);
result = imwarp(img,t); % if exacution takes more than X seconds - stop running
如果imwarp计算时间太长(超过预定义的X秒),我希望matlab停止运行过程。有可能吗?
请注意,我不想在循环中使用tic-toc作为停止条件,因为事实并非如此。
答案 0 :(得分:1)
您有两种选择:
并行计算工具箱
使用Parallel Computing Toolbox,您可以定义timeout for idle calculations。请务必记住,只要您的流程进入parfor
循环或使用parfeval
,就会重置此超时。
硬编码超时
在这种情况下,您将实现一个硬编码的超时变量,并定期检查它以评估是否必须停止正在运行的进程。