0
我有兩個向量(稱爲A
和B
),長度爲N
。然後,我需要將它們兩者相乘,但作爲一個「整合」過程。這意味着我必須首先乘以A(1)*B(1)
,然後A(1:2)*B(1:2)
,直到A(1:N)*B(1:N)
。由於B
是一個列向量,因此乘上展位向量的結果是一個數字。我已經與for
循環中完成它:乘以尺寸隨時間增加的兩個向量
for k = 1:N
C(k) = A(1:k) * B(1:k).';
end
但是,我想問問你,如果這是最好的解決辦法或有任何其他選項更加節省時間,因爲N
是非常大(約110,000
)
看起來像C = cumsum(A. * B)。它是否正確? – Navan
是的,那種。但我需要的是,例如,如果A = [1 2 3]和B = [1 1 1],則C的結果應該是C = [1 * 1 1 * 1 + 1 * 2 1 * 1 + 1 * 2 + 1 * 3] = [1 3 6]。做你說的我得到一個矩陣N * N,其中每列是預期的結果。但如果我這樣做,我會得到一個巨大的矩陣,因爲我的N非常大。 – Pep
@ Navan的建議不會產生一個NxN矩陣,它會返回一個向量? 'A = [1 2 3]; B = [1 1 1]; C = cumsum(A. * B)'返回'C = [1 3 6]'按要求...好回答Navan – Wolfie