gpt4 book ai didi

matlab - 如何在一定时间后停止运行matlab代码?

转载 作者:行者123 更新时间:2023-12-03 09:21:32 32 4
gpt4 key购买 nike

假设我正在运行一个函数 fun(),但我无权访问其内部(因此我无法在其中添加条件)。对于某些输入,该函数可能会很慢。如果程序运行时间超过一定时间,我该如何终止程序?

更新:我正在测试各种输入集的功能。对于其中一些人来说,这需要更多。我想跳过那些花费太长时间的内容,然后转到下一个输入。

最佳答案

不幸的是,MATLAB 的单线程特性使事情变得比应有的更加复杂。我的第一个想法是使用计时器,但即使计时器回调也不会中断繁忙的 MATLAB,因为所有 M 代码都是从同一线程执行的。

我会通过从另一个 MATLAB 进程调用该函数并监视该进程来解决这个问题。您可以使用内置的 SYSTEM 函数调用 MATLAB,并使用 -r 命令行参数指定要运行的脚本的名称。伪代码看起来像这样。这很粗糙且未经测试,但应该可以让您了解:

% Create Timer object
timerObj = timer();
% set timer properties, with 60 second interval
set(timerObj, 'executionMode', 'singleShot', 'StartDelay', 60, 'timerFcn', @timerCallback);
% call MATLAB. It will run in background
system( 'matlab.exe -r myscript &' );

function timerCallback(varargin)
% if the other matlab process is still running when the timer is elapsed, kill it. perhaps use another system() call to run taskkkill.exe (if on windows)

关于matlab - 如何在一定时间后停止运行matlab代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29680520/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com