我對上述變量運行上述循環:如何使MATLAB遍歷2D陣列更快
- A是大小爲m×n的2D陣列。
- 掩模尺寸的1XN
- 結果一維邏輯陣列大小的一維數組1XN
- B爲形式MX1
- ℃的載體是MXM矩陣,m是與上述相同。
編輯:將foo(x)展開爲函數。
這裏是代碼:
temp = (B.'*C*B);
for k = 1:n
x = A(:,k);
if(mask(k) == 1)
result(k) = (B.'*C*x)^2/(temp*(x.'*C*x)); %returns scalar
end
end
注意一下,我已經成功地使用上面的代碼爲PARFOR循環,而不是爲。我希望你能夠建議一些方法來使用meshgrid或排序來產生更好的性能改進。我不認爲我有內存問題,所以解決方案也可能是昂貴的內存明智的。
非常感謝。
您的'foo'是否允許輸入矩陣,或只輸入列? –
預分配'結果'。將if(mask(k)== 1)'改爲'if mask(k)'。不過,你不會從中獲得太多收益。 –
嗨,我不認爲矩陣輸入應該有任何問題。 – user2324712