用過matlab的同學應該都知道,matlab的慢是出了名的,但是再慢也有優化的方式,下面我們給出幾個matlab程式設計中常用的優化技巧。
在講優化方法之前,首先要說的就是matlab中用tic toc
的方式來計算執行時間,這是個常識。當然,想統計具體的耗時,可以用profile
工具。
向量化操作
這個應該是用過matlab的同學都清楚的一點,matlab中操作向量和矩陣的速度要比使用for迴圈的速度快很多,是因為其底層呼叫了高效能線性代數庫blas庫和lapack庫。這個就不多說了。
記憶體預分配
在matlab中我們可以定義乙個空矩陣
mtx = ;
然後後面再給它加入一些資料,而且這個矩陣大小可以隨著我們填入資料的多少而變化。像下面這個程式
tic
n = 1000;
mtrx = ;
init = 1.0;
for i = 1:n
for j=1:n
mtrx(i,j) = init + 1.0;
endend
toc
這個程式的執行時間是多久呢?在我電腦上是0.2秒。
那這個程式有什麼問題呢?就是我們沒有為
Android Studio占用太多記憶體
最新更新,沒什麼卵用,別看了 最近manjaro下android studio占用記憶體越來越多了,用著用著就占用3.5g,12g的記憶體,用著用著就占用80 好煩啊 如果您正在低於建議規格 請參閱系統要求 的機器上執行 android studio,則可以按如下方式自定義 ide 以提高機器效能 ...
matlab讀取mat檔案
今天無意中用到了 mat檔案,用matlab讀取後要和另乙個矩陣相乘,結果一直出錯。顯示 mat格式資料為struct,而不能和數字矩陣相乘。最後用兩個matlab命令將之轉化為矩陣。h load mat 這樣顯示錯誤 要用如下命令代替這一命令 h load mat h cell2mat struc...
MAT分析記憶體洩漏
mat常用的功能 histogram可以列出記憶體中每個物件的名字 數量以及大小。dominator tree會將所有記憶體中的物件按大小進行排序,並且我們可以分析物件之間的引用結構。摘取 這是dominator tree中比較常用的一種分析方式,即搜尋大記憶體物件通向gc roots的路徑,因為記...