【问题标题】:How get sum of weighted 'tensor-multipllication' vectors without loop?如何在没有循环的情况下获得加权“张量乘法”向量的总和?
【发布时间】:2017-02-05 14:07:40
【问题描述】:

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

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

w1, w2... wn 是标量并存储在w 中, b1, b2... bn 存储在 Bc1, c2... cn 存储在 C 中。获取效率如何

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

bici 是向量,而 bi*ci' 是矩阵,而不是标量? 尺寸:1 x N 代表 wP x N 代表 BQ x N 代表 Cwi = w(i)bi = B(:, i)Ci = C(:, i)

【问题讨论】:

  • wBC 有什么形状?我们是否假设它们扩展了第三维中的n 元素?
  • 更新了我的帖子,添加尺寸。

标签: matlab matrix matrix-multiplication vector-multiplication


【解决方案1】:

简单地说:

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

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

【讨论】:

  • 看起来是真的,谢谢。我想你的公式,也许像bsxfun(@times, w, B) * C' 这样的东西会快一点。
  • 是的,看起来不错,这取决于您的特定尺寸PQN
猜你喜欢
  • 2020-02-29
  • 2021-10-12
  • 2015-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多