在MATLAB

时间:2017-10-01 08:37:51

标签: matlab shell

每次调用system时,MATLAB都会打开一个新会话。 我希望能够保持会话打开并执行几次调用。

理想情况下,这可行:

system('export DUMMY=2');
[~, out] = system('echo $DUMMY');
disp(out)

但它并不是因为每个system电话是分开的。我如何解决这个问题并保持一个会话运行?

上面的代码可以使用setenv修复,将第一行替换为setenv('DUMMY', '2');,但我正在寻找更通用的解决方案。

1 个答案:

答案 0 :(得分:1)

这些方面的某些内容是否适合您?

C:\Users\...>SET "foo=bar" & ECHO %foo%
bar

Windows批处理文件和命令提示符允许在一行上执行多个命令,并将它们与&连接起来。使用Matlab的例子:

[~, out] = system('SET "foo=bar" & ECHO %foo%');
disp(out); % bar

或者,您可以创建一个.bat文件,通过system函数调用,其行为取决于您传递给它的参数(有关详细信息,请阅读this post)。 / p>