如何在多个 MATLAB 会话中自动调用具有简单输入的函数?
手动的方法是:
- 开三场
- 分别调用1、2 或 3 的
magic(t)
位置t
所以,我的问题是:我怎样才能以编程方式完成这一切?
如果它是相关的,我不想使用并行处理工具箱。
请注意,我不认为parfor
循环可以做我想做的事。首先,这需要并行处理工具箱,其次,我希望能够在其中一个操作失败时立即进行调试,而不会打扰其他会话。
如何在多个 MATLAB 会话中自动调用具有简单输入的函数?
手动的方法是:
magic(t)
位置t
所以,我的问题是:我怎样才能以编程方式完成这一切?
如果它是相关的,我不想使用并行处理工具箱。
请注意,我不认为parfor
循环可以做我想做的事。首先,这需要并行处理工具箱,其次,我希望能够在其中一个操作失败时立即进行调试,而不会打扰其他会话。
首先,必须找到一种以编程方式打开会话的方法。基于此,发现您可以按以下方式执行此操作(也适用于 Windows):
% Opening 3 matlab sessions
for t = 1:3
!matlab &
end
除了简单地打开它们,还可以给出一个简单的命令
!matlab -r "magic(5)" &
现在,要最终结合起来,只剩下一个小技巧:
for t = 1:3
str = ['!matlab -r "magic(' num2str(t) ')" &'];
eval(str)
end
请注意,如果您想使用更复杂的输入,您可以简单地将它们保存在一个结构中,并通过使用包装脚本作为被调用函数来使用此索引调用它们。
您可以尝试 Multicore,它使用多个 Matlab 实例通过公共目录传递信息来完成 parfor 所做的事情。如果您可以重写代码循环以调用返回值的函数,那么 Multicore 可能会满足您的需求。