如何得到加权和张量乘法的总和'没有循环的向量?

时间:2017-02-05 14:07:41

标签: matlab matrix matrix-multiplication vector-multiplication

我有一组标量和两组矢量:

w1, w2... wn
b1, b2... bn
c1, c2... cn

w1, w2... wn是标量并存储在w中, b1, b2... bn存储在B和{}中 c1, c2... cn存储在C中。如何有效地获得

w1*(b1*c1') + w2*(b2*c2') + ... + wn*(bn*cn')

bici是向量,但bi*ci'是矩阵,而不是标量? 尺寸:1 x NwP x NBQ x NCwi = w(i)bi = B(:, i)Ci = C(:, i)

1 个答案:

答案 0 :(得分:1)

简单地:

result = B*diag(W)*C';

如果NPQ大得多,您可能更愿意使用diag(W)计算稀疏形式的权重矩阵spdiags(W', 0, N, N)