Matlab 2018a 比2017b有哪些改進?
http://app.go.mathworks.com/e/er?s_v1=22336elqem=2356058_EM_WW_DIR_17-12_R2018a-PRERELEASE-TAHs=646005169lid=15347elqTrackId=031f4ecb13f647218cf08176a882e999elq=27e89ed273814edba23da146346ecf5celqaid=22336elqat=1
大概看了一下"Release Notes", 最讓我眼前一亮的是:
? Startup: Increased speed of MATLAB startup time
? Execution Engine: Execute tight loops with scalar math faster? Execution Engine: Improved performance for common programming patterns
MATLAB最近幾個版本不斷在提速, 不更新版本的話, "MATLAB循環速度慢"這種觀點很可能過時了.
我在使用的時候, 經常發現循環比矩陣運算快的例子, 預計以後這樣的例子會越來越多.
舉個例子(在R2017b上測試):
N = 1e2;
nloops = 10000;
x = randn(N, 1);
w = randn(N, 1);
tic;
for jj = 1:nloops
s1 = w" * x;
end
t1 = toc;
tic;
for jj = 1:nloops
s2 = 0;
for ii = 1:length(x)
s2 = s2 + w(ii) * x(ii);
end
end
t2 = toc;
t1/t2
s1 - s2
結果:
ans =
1.933815776861880
ans =
3.552713678800501e-15
循環運算速度是矩陣運算速度的1.9倍.
當然, 將N改成更大, 比如1e5, 那就是矩陣運算快了.
"common programming patterns"不知道指的是什麼, 等正式出來再看吧.
Trading Toolbox
? Wind Interface: Retrieve market data and execute trades through Wind FinancialTerminal點贊,如果有
根據 @芷菡 在Matlab R2017b中的測試,我分別Matlab R2017b和Matlab R2018a Prerelease測試結果如下:
2017b的:
ans =
1.7083
ans =
4.4409e-16
2018a的:
ans =
4.1039
ans =
-8.8818e-16
simulink code inspector可以支持更多的code generation optimization
反對 @芷菡 的例子,向量規模才100就說循環比矩陣運算快?
R2017b,重複100萬次,向量維數從1到10萬,兩種寫法的比較:
」經常「被發現的循環比矩陣運算快的例子發生在1到100這種小規模上,而且這還是重複了100萬次的結果。大規模下循環的速度基本不可能比向量化運算快,不然的話那些矩陣運算庫早就沒人用了。所謂
Execution Engine: Execute tight loops with scalar math faster
我想並不是說比向量化運算快,而是說無法向量化的沒有那麼慢了。
挺好的,謝謝分享,前來學習。
Matlab 2018a 比2017b有哪些改進? - 知乎
https://www.zhihu.com/question/264332838推薦閱讀:
※為什麼很多計算機專業碩士生論文編程都是用MATLAB做的,僅僅是科學計算方面的優勢嗎?
※為什麼同樣的C++函數,在matlab混合編程中調用,和直接在VS2010中調用,計算結果不一致?
※用於數學建模 安裝matlab 2014 需要安裝哪些組件?
※matlab的floor函數是否有bug?
TAG:MATLAB |