亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在使用矩陣之前需要預定義變量嗎?

在使用矩陣之前需要預定義變量嗎?

富國滬深 2019-04-04 11:07:16
在使用矩陣之前需要預定義變量嗎
查看完整描述

2 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

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

查看完整回答
反對 回復 2019-04-13
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

我建議把FUN函數的參數改為9個,如x1到x9,FunF(x1,x2........,x9)
運算時令前三個為F,即F=[x1,x2,x3]
中間三個為PosF,PosF=[x4,x5,x6]
后三個為x,x=[x7,x8,x9]

查看完整回答
反對 回復 2019-04-13
  • 2 回答
  • 0 關注
  • 1263 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號