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