說我有它由一個項目:加載變量成在Matlab從的Structs功能
- 處理所有我的模擬運行的主要腳本
- 幾個較小的功能
- 一對夫婦包含數據的結構
在腳本中,我將在for循環內多次訪問函數(在分鐘長的模擬中有一千多次)。每個函數也在尋找結構文件中包含的數據作爲其計算的一部分,這些參數通常是在仿真過程中固定的參數,但需要在運行之間手動更改以觀察效果。
由於通常這些函數構成運行時間的大部分,我試圖節省時間,因爲我的模擬不能實時運行(最終目標),並且我失去了很多時間傳遞變量/函數週圍的參數。所以,我有三個想法,試圖做到這一點:
- 加載主仿真的結構,然後依次通過每個變量的函數在一個大的參數(當前解決方案)的形式。
- 每次調用函數時加載結構體。
- 定義結構爲全局變量。
從系統效率(與項目開發最相關)以及可能因爲我不是來自「良好實踐」角度的專家程序員而言,最佳解決方案是什麼?我還沒有考慮過另一種選擇嗎?
第一個對我來說似乎最有效率。 – freude
傳遞和引用結構變量是一種高效的操作。在別處尋找以優化軟件。看看你當前從一個循環調用的函數是否可以被矢量化來一次處理整個。 –
Peter
向我們提供一些關於代碼放慢速度的更多信息會有所幫助。我提供了一個答案,但考慮到你對matlabgui的回答所說的一些話,我不確定它是否會有所幫助。 – TTT