我需要一種方法來在另一個腳本內執行matlab腳本。棘手的部分是,第一個腳本是一個while循環,每60秒輪換一次新作業。如果找到一份工作(由我創建),則應調用main.m文件。現在,問題是我希望能夠在while循環已經運行時修改main.m和所有其他函數。循環看起來像這樣:Matlab:通過腳本模擬命令窗口輸入
while run
- pause 60 seconds
- get jobs form text file on network drive
- run main(jobID)
- save result on network drive
end
我認爲eval命令會做的伎倆。但事實並非如此。我認爲Matlab編譯所有可以在運行期間調用的函數,只要我開始我的while循環。從那時起,我不能在沒有重啓while循環的情況下改變任何東西。 (我可以改變它,但Matlab忽略所有更改)。
有沒有辦法解決這個問題?我以爲有一種在命令窗口內執行命令的方法,就好像用戶輸入了它一樣。但我不記得。
您是否嘗試過使用斷點並按F10執行腳本以逐行進行? –
這不會令人滿意,因爲我想讓matlab用這個while循環「等待」我,然後選擇一個作業,執行,保存文件並返回while循環。原因是,我想使用大約20個工作站,但我沒有任何訪問真正的集羣。所以我很喜歡把工作放在那裏,第一臺免費的電腦重複了while循環。 – Cat
你可以添加mex擴展到你的服務器嗎?你可以用「popen」啓動另一個Matlab實例並使用它的命令窗口。標準庫沒有「popen」,只有在C擴展幫助下才可用 –