MATLAB: Time limit for the Exclamation Point — !

!exclamation pointMATLABtime

I was wondering if anyone knew if there was an established time limit for using the exclamation point to run an external command. I notice an issue that matlab seems to hang if I run an external script that takes too much time. I have searched for a max time so I can put a time limit on my script but I cannot not find a specific listed time.

Best Answer

Hi,
which OS are you on? On windows you can use activex and the WScript.Shell component to set a timeout and cancel the started process.
% Get interface to Windows Shell objects which allow you to run
% external applications
sh = actxserver('WScript.Shell');
% As an example run cmd.exe
h = sh.Exec('cmd.exe');
% Set timeout on 5 seconds. If timeout is reached terminate the
% application
t = timer('StartDelay',5,'TimerFcn',@(x,y)h.Terminate);
start(t);
% Wait for the application to finish normally or to Timeout
while (strcmp(h.Status,'WshRunning'))
drawnow % Allow timer to execute
end
% Clean-up timer
stop(t);delete(t)
% Get stdout if any
r = h.StdOut.ReadAll