2011-01-27 74 views

回答

0

試着用矩陣來表達問題。 MATLAB和Octave針對矩陣運算進行了優化。下面是MATLAB文檔網站關於vectorizing loops說的內容的摘錄:

MATLAB軟件使用矩陣語言,這意味着它被設計用於向量和矩陣操作。通常可以通過使用利用此設計的矢量化算法加速代碼。 向量化表示將forwhile循環轉換爲等效的向量或矩陣運算。

它們還提供矢量化的環路來計算1001倍的值範圍從0到10的正弦的一個簡單的例子:

i = 0; 
for t = 0:.01:10 
    i = i + 1; 
    y(i) = sin(t); 
end 

爲了向量化版本相同的代碼:

t = 0:.01:10; 
y = sin(t); 

在MATLAB Code Vectorization Guide 中有更多的細節和這幾個相關問題的一些例子: