MATLAB顧名思義,本來就是為向量或矩陣運算設計的,所以很多場合,如果能夠使用向量化運算,就應盡量避免使用顯式循環(for和while)。這壹點是和普通的高級編程語言如C++、Fortran有顯著差別的。
舉壹個簡單的例子:生成壹個對數表,如果使用循環
x = .01;
for k = 1:1001
y(k) = log10(x);
x = x + .01;
end
而在MATLAB中可以用這種向量化的代碼:
x = .01:.01:10;
y = log10(x);
二者的差別不僅在於代碼量的大小,效率差別也很大。
這方面也沒什麽特殊的資料,屬於比較基礎的,如果想用好MATLAB,就請多花點時間把基本功練紮實點(事實上很多人並沒做到)。特別提醒壹下,很多時候註意使用MATLAB的“點運算操作符”,如.*, ./, .^等。想進壹步了解這方面的內容,可以在MATLAB幫助系統裏搜索壹下Vectorization,有壹些相關的主題和例子。