2015-04-20 141 views
0

任何人都可以幫助理解問題在哪裏?Matlab速度問題

我正在比較一個基本的matlab函數(如mean.m)與兩個matlab版本2013b和2014b在同一臺機器上的速度。

令人驚訝的是,版本2013b比2014b快得多.... 你們有些人有/有同樣的問題?平均的

個人資料簡介與2014B - > 0.013

喜歡在我的劇本我用的是平均函數確實經常在運行同一程序的時間不同 - > 0024 檔案均與2013b彙總一個或另一個版本是巨大的..... 怎麼回事?

的代碼來計算配置文件時間:

A=rand(100,1) 
time_mean=zeros(1000,1) 
for i=1:1000 
tic 
mean(A); 
time_mean(i)= toc; 
end 
+1

當您使'A'變大時,這些結果是否一致? – cfh

+0

您應該在for循環外面放置'tic'和'toc',並測量執行1000次計算所需的時間,而不是一次。 – kkuilla

+0

謝謝! A =蘭特(1000,1)。 2014年的平均功能的配置文件時間爲0,031,2013年爲0,021 ... – marina

回答

0

首先,這不是明智的使用Profiler來跨版本比較計時 - 它的目的是確定一個單一的MATLAB緩慢釋放的部分。其次,你應該使用timeit來處理這類事情。我在Windows計算機上比較了R2013b和R2014b在一系列尺寸上的情況,並可以看到R2014b中約0.1毫秒的小固定開銷。

代碼基本上是:

for exp = 1:6 
    A = rand(10^exp, 1); 
    t(exp) = timeit(@()mean(A)); 
end 
semilogy(1:6, t); 

Plot of execution time for vector mean

如果要進行大量的個人電話到mean,你可能會更好看,如果你可以將它們形成一個呼叫 - MATLAB的mean能沿着矩陣的行或沿矩陣的行操作...

+0

感謝Edric,事實上,我試圖提高成像分析的大代碼的速度,並通過使用兩個Matlabs Profile由於「均值」函數,時間差異很大(基本成像分析的大部分函數幾次調用「均值」)。就像我假設從新版本到舊版本的速度更好(或者不是最差)。你有沒有發現更多的基本功能,這種差異是跨matlab版本的時間?非常感謝您的建議 – marina