Matlab脚本 - 运行外部命令(非阻塞)

问题描述:

从Matlab中的脚本中,我需要运行一个外部命令。通常这是通过system完成的,但脚本执行会阻塞,直到命令完成。有没有一种方法可以在不阻碍执行的情况下从脚本执行命令?Matlab脚本 - 运行外部命令(非阻塞)

编辑:操作系统是Windows服务器。

在Windows下你需要使用start

system('start notepad.exe'); 

您可以使用感叹号(!),然后命令,例如

!vi 

并让它运行而不会阻塞执行这将是

!vi & 

程序将显示在一个单独的屏幕,您可以回到命令窗口,以便继续运行MATLAB语言语句。它为脚本做同样的事情,所以我想这就是你想要使用的。

这可能是矫枉过正,但如果你有完整的安装MATLAB的,你可以使用Parallel Computing toolbox在一个单独的线程中运行该命令。这其实很容易做到的,基本的语法是:

obj = createJob(); 
set(obj, 'FileDependencies', {<list .m files used here>, 'ExampleFileFunc.m'}); 
task = createTask(obj, @ExampleFileFunc, 1, {4}); 

submit(obj);     

waitForState(task,'finished'); 
varargout = get(task,'OutputArguments'); 

{4}是从ExampleFileFunc输出的数量。

+0

哇,我觉得我喜欢劈头发... – eLobato 2011-03-17 19:50:00