3

我想检查/改进我使用的一些校正算法。

整个事情是在 Matlab 中实现的,就像这样

for ii = 1:nn
   ... % Prepare some input files
   parfor i = 1:n
      system('...'); % simulation code
   end
   ... % Use the output and prepare some stuff that can be used to prep the next iteration
end

其中 n 比我可以使用的#Treads 更大。这通常需要一段时间才能运行,同时我想将计算机用于其他(非 cpu 饥饿)任务。因此,我想以低优先级运行系统调用。

我已经尝试使用 new 或 start 来执行此操作,但是调用不会等到它完成并继续进行。检查输出文件是否存在会有一个肮脏的黑客,但是我再次问自己是否没有更好的解决方案......

任何帮助将不胜感激

你的magu_

4

1 回答 1

2

尝试在命令中使用/wait标志:start

>> system( 'start /LOW /WAIT matlab.exe' );

仅在我关闭打开的应用程序后启动了一个新的 matlab 实例并恢复执行。

当然,您需要matlab.exe在我提出的解决方案中替换为您要运行的模拟程序名称。

于 2013-07-10T08:01:15.787 回答