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

时间:2011-03-17 18:57:38

标签: matlab

从Matlab中的脚本,我需要运行一个外部命令。通常,这是使用system完成的,但脚本执行会阻塞,直到命令完成。有没有办法从脚本执行命令而不阻塞执行?

编辑:操作系统是Windows Server。

3 个答案:

答案 0 :(得分:2)

在Windows上,您需要使用start

system('start notepad.exe');

答案 1 :(得分:2)

这可能有点矫枉过正,但是如果你有完整的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的输出数量。

答案 2 :(得分:1)

您可以使用bang(!)然后使用命令,例如

 !vi

让它在没有阻止执行的情况下运行它将是

 !vi &

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