使用用於循環我有一個矢量X = [X_1 X_2 ... x_n],矢量Ŷ = [Y_1 Y_2 Y_3]和基質X = [x_11 x_12 ... x_1n; x_21 x_22 ... x_2n; x_31 x_32 ... x_3n]。嘗試,來計算特定求和方程而不在MATLAB
對於i = 1, 2, ..., n
,我想計算的MATLAB以下sum
:
sum((x(i) - y*X(:,i))^2)
我試圖寫的是下面的MATLAB代碼:
vv = (x(1) - y*X(:,1))^2; % as an initialization for i=1
for i = 2 : n
vv = vv + (x(i) - y * X(:,i))^2
end
但如果我能我想知道計算沒有for循環,以便潛在地減少計算時間,尤其是如果n
是非常高的...那麼在MATLAB中有沒有其他更加優化的可能性呢?
任何幫助將不勝感激!
您仍然需要訪問數組中的每個元素。這不能改變。你可以並行化它,因爲這個流可以分成不同的塊,但是這個好處是有限制的。你無法比每個可用內核的一個線程做得更好。如果你使用GPU,這可能是一個很高的數字,但它仍然是有限的。 – duffymo
您的循環與您的公式不同。你想總結每個差異的平方,或平方整體的總和? – beaker
沒有每個區別的差異:) – Christina