【发布时间】:2021-01-04 06:06:25
【问题描述】:
我想限制我在代码中使用的函数的执行运行时间。有可能吗?
我正在使用带有 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 作为停止条件,因为情况并非如此。
【问题讨论】:
-
困难,Matlab 确实为您提供了计算运行函数所需时间的工具 - 但要按照您的要求,您将需要一个多线程环境,其中一个线程执行代码,而另一个线程保持计时器。据我所知,控制这个变量的选择有限。这是您可能想阅读的内容blogs.mathworks.com/pick/2008/05/05/…
-
没有通用的 matlab 包装器。一些 matlab 函数,如 eig 是内置的,这些函数没有中断钩子。
-
如果你在 linux 上运行,我认为你应该能够强制程序在一段时间后关闭。不知道怎么做,但我已经看到它正在完成。
标签: matlab time-limiting