1. 程式人生 > >Matlab為結構體陣列預分配記憶體

Matlab為結構體陣列預分配記憶體

在編寫一個迴圈來給結構體陣列中的某個結構體單元賦值時,matlab會提示“變數‘xxx’似乎會隨著迭代次數而改變,請預分配記憶體以提高演算法效率”。下面介紹一種預分配記憶體的方式:

首先,應該先定義好結構體陣列中的單個結構體的資料結構,如:person=struct('name',[],'age',0,'sex',[]);

然後,確定在演算法中自己所需的結構體陣列的維度,如:30*40;

最後,呼叫repmat()函式,persons=repmat(person,[30 40]);

這樣一個預分配好30*40的結構體陣列就初始化完畢並分配好了記憶體。