2013-07-10 60 views
3

我想檢查/改進一些我使用的校正算法。matlab低優先級系統調用

整件事是在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 

Wherey n大於我可以使用#Treads一個更大的數字。這通常需要一段時間才能運行,並且在此期間我想將計算機用於其他(非cpu飢餓)任務。因此我想運行低優先級的系統調用。

我已經嘗試過這樣做使用新的或啓動,但隨後調用不會等待,直到它完成和公正進行。將會有超過是否存在輸出文件檢查一個骯髒的黑客攻擊,但話又說回來,我問自己,如果沒有應該是一個更好的解決方案...

任何幫助,將不勝感激

你 magu_

回答

2

嘗試使用/wait標誌start命令:

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

開始了新的MATLAB實例,並恢復執行後,才關閉打開的應用程序。

當然,您需要在我與你想要運行的模擬程序名稱提出的解決方案,以取代matlab.exe

+1

工程就像一個魅力thx。爲了方便,我還添加了/ MIN標誌。 –

+0

很好的答案!不幸的是,它不適合我。我使用的是我調用的.exe中的STDOUT,並且出於某種原因,使用Windows啓動命令時,STDOUT不起作用。任何其他方法? – Trashman