在使用矩陣之前需要預定義變量嗎
2 回答

慕蓋茨4494581
TA貢獻1850條經驗 獲得超11個贊
矩陣A的大小會隨著for循環次數增加而增加,建議預先定義A的大小,以提高運行速度
原因:
(1)Matlab存儲矩陣的方式。Matlab的矩陣是以塊(Block)的形式存儲的,當Matlab在為即將存儲的矩陣劃分塊時,如果沒有相應大小的連續內存,即使實際內存還有剩余,也會報錯“Out of Memory”。那為什么內存會不連續呢?因為計算機在使用過程中,存儲單元會不斷的分配和清除,內存也就被分割成不連續的區域。
(2)動態分配VS預先定義。在動態分配過程中,由于Matlab矩陣變量逐漸增大需要連續為此矩陣分配內存,但由于塊的不連續性,當矩陣逐漸變大時,剛開始分配的塊很可能不夠,Matlab需要移動此塊找到更大的塊來存儲,這樣在移動過程中不但占用大量時間,而且很可能由于找不到足夠大的塊,導致“Out of Memory”;當矩陣變量預先定義其大小時,Matlab在計算之前就一次性找到最合適的塊,不需要動態分配內存
- 2 回答
- 0 關注
- 1263 瀏覽
添加回答
舉報
0/150
提交
取消