我有一個函數可以遍歷一堆約10-20次的代碼,從而生成一個n * 1的結構,並在結構的每一行中包含大量數據。貫穿每行代碼需要一段時間,當我運行它時,有可能我犯了一個錯誤或需要手動更正。我不想停止運行代碼,因爲那樣我就不得不失去我之前完成的所有工作。是否有可能將結構的每個迭代保存到工作空間中,即使該函數尚未運行,然後在下一次迭代中用新的版本覆蓋該版本? (例如,如果我運行了第一次迭代,我有一個1 * 1的結構,並且會保存,然後函數繼續,給出一個2 * 1結構。我可以重寫第一個版本,然後繼續這樣做,以防萬一我停止功能,在中間?)在運行MATLAB函數的中間保存struct
0
A
回答
0
可以包括環路,其中myStruct
代表您結構變量中save fileName myStruct
和filename
是要保存的名稱。
如果程序在保存完成時停止或崩潰,最好在覆蓋之前複製舊文件。你可以用copyfile
來做到這一點。
所以,代碼如下:
%// ...
fname = 'filename'; %// string contianing the file name
fid = fopen([fname '.mat'],'w'); %// create file, even if myStruct doesn't exist yet
fclose(fid); %// close file
for [...] %// your loop
%// loop operations
copyfile([fname '.mat'], [fname '.bak'], 'f') %// back up file
save(fname, 'myStruct') %// overwrite file with updated myStruct
end
0
我會用一個try/catch
控制結構。這使您可以定義出現錯誤或運行時異常時應該發生的情況。
假設你的函數返回有問題的結構,
function foo = bar(baz)
try
% your code here
catch some_exception
warning(some_exception.msg);% print the exception so you can correct the error later.
return % instead of exiting with an error message, return to the caller, the last value of foo is returned
end
相關問題
- 1. 在函數中保存變量? (MATLAB)
- 2. 如何測量函數在Matlab中運行的時間?
- 3. 在GUI matlab中運行函數
- 4. 從Java運行MATLAB函數
- 5. 在MATLAB中保存最小時間
- 6. 在Matlab中保存當前運行的腳本
- 7. 當內存空間被保留爲struct?
- 8. 在保存後類型時運行在wordpress中運行一個函數
- 9. 如何在MATLAB數組中保存多個函數?
- 10. Matlab中是否存在函數緩存?
- 11. 優化八度/ matlab函數的運行時間
- 12. 函數的運行時間
- 13. 提高MATLAB函數的執行時間
- 14. F#中的一個不想運行的保存函數
- 15. 在MATLAB中保存執行函數或腳本名稱的變量?
- 16. 如何在Matlab函數中保存以前的變量值函數
- 17. MATLAB中的函數添加字段一個struct
- 18. 如何在MATLAB中運行並行函數?
- 19. 如何在Matlab中計算運行時間內存?
- 20. 函數保持運行
- 21. 在編譯期間正在運行和緩存的函數
- 22. Matlab:在函數/腳本中運行給定目錄中的所有函數
- 23. 在Matlab中保存未知工作空間的工作空間
- 24. 在R中編輯函數並保存更改(matlab樣式)?
- 25. MATLAB在函數中多次保存多個輸出
- 26. 如何控制函數在MATLAB中運行的位置?
- 27. 從Python運行Matlab M函數
- 28. FSEEK錯誤,同時運行MATLAB函數
- 29. 運行MATLAB函數給出了錯誤
- 30. 在matlab中保存圖像
包括'內循環保存文件名myStruct'?這裏'myStruct'代表你的結構變量,'filename'是你想要保存的文件。或者更好的是,在覆蓋之前製作一箇舊文件的副本。在Windows上,'!複製filename.mat filename.bak' –