我有一些脚本需要在桌面(Windows 7)计算机的后台运行。我明白要做到这一点,我需要用以下命令启动MATLAB:
matlab -nosplash -noFigureWindows -r "myScriptName"
我也明白为了让它干净利落,我需要在我的脚本末尾包含一个exit
命令。
有没有办法可以稳健地确定脚本是在后台进程中运行还是以交互方式运行?我想避免在交互过程中无意中运行脚本并意外杀死我的MATLAB会话的情况。
if ~RunningInInteractiveMode
exit
end
我可以用~RunningInInteractiveMode
代替函数或其他布尔测试吗?我看了these methods,但是Windows没有-noDesktop
选项,所以总会打开一个命令窗口(辅助问题:可以在后台完全在windows中运行MATLAB而不打开完整的命令窗口?)。如果重要的话,我正在运行r2014a。
答案 0 :(得分:4)
您可以使用参数运行脚本:
matlab -nosplash -noFigureWindows -r "background=true;myscript"
在剧本结尾处这样:
if exist background
exit
end
答案 1 :(得分:1)
使用feature('ShowFigureWindows')
检查是否使用-noFigureWindows
并usejava('jvm')
检测JRE是否可用。
background_task=~feature('ShowFigureWindows')||~usejava('jvm')
答案 2 :(得分:0)
您无需将exit
添加到脚本中,可以将其添加到命令行中:
matlab -nosplash -noFigureWindows -r "myScriptName;exit"