在MATLAB中,向量化代碼比使用for循環要快。我一直在試圖做到這一點,但我不完全明白這是如何工作的。我希望有人能告訴我如何改進這兩個for循環和一個while循環與改變索引,所以我可以讓我的頭圍繞它。任何幫助將是一個驚人的。向量化循環
width= 700;
height= 600;
fg= zeros(height, width);
for i= 1: height
for j= 1: width
fg(i, j) = 0;
while ((match== 0)&& (k<= M))
if (w(i, j, rank_ind(k))>= thresh)
if (abs(u_diff(i, j, rank_ind(k)))<= D* sd(i, j, rank_ind(k)))
fg(i, j)= 0;
match= 1;
else
fg(i, j)= fr_bw(i, j);
end
end
k= k+ 1;
end
end
end
注意w
,u_diff
,sd
,rank_ind
和fr_b
都陣列
請不要複製您的問題:MATLAB向量化的循環(http://stackoverflow.com/questions/5820229/ MATLAB的矢量化-for循環)。相反,您應該編輯原始問題以更好地反映您的問題。 – gnovice 2011-04-28 17:03:09
我已重新發布最後一個問題令人困惑,代碼不正確我已標記爲要刪除並重新張貼正確的代碼,以便可以理解。 – user729506 2011-04-28 17:04:26
@ user729506:你可以編輯你之前的問題,使其更清晰。如果您覺得以前的問題無法通過編輯挽救,那麼您可以自己刪除它,並暫停思考如何在再次發佈之前改進問題。 – abcd 2011-04-28 17:09:16