-1
當我們試圖用一個for循環來實現一個程序,其限制爲100時,八度未能顯示所有結果。這是緩衝區問題。我們如何克服這一點?我們如何克服八度音階的緩衝區限制?
當我們試圖用一個for循環來實現一個程序,其限制爲100時,八度未能顯示所有結果。這是緩衝區問題。我們如何克服這一點?我們如何克服八度音階的緩衝區限制?
試着用矩陣來表達問題。 MATLAB和Octave針對矩陣運算進行了優化。下面是MATLAB文檔網站關於vectorizing loops說的內容的摘錄:
MATLAB軟件使用矩陣語言,這意味着它被設計用於向量和矩陣操作。通常可以通過使用利用此設計的矢量化算法加速代碼。 向量化表示將
for
和while
循環轉換爲等效的向量或矩陣運算。
它們還提供矢量化的環路來計算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 中有更多的細節和這幾個相關問題的一些例子:
請出示你的代碼,謝謝 – eat 2011-01-27 10:21:09