gpt4 book ai didi

matlab - 在 MATLAB 中向量化矩阵的加权和

转载 作者:太空宇宙 更新时间:2023-11-03 19:53:31 24 4
gpt4 key购买 nike

我试图在 MATLAB 中对以下操作进行矢量化处理,但这让我很困惑。我从经验中了解到,通常一种方法,所以我还没有放弃。任何帮助将不胜感激。

我有一个 m 行向量的集合,每个行向量的大小为 n,排列成 m x n 矩阵;称它为 X

我还有一个 m 大小的权重向量,w

我想计算由 X 中的向量的自外积形成的矩阵的加权和。

这是一个使用 for 循环的 MWE:

m = 100;
n = 5;

X = rand(m, n);
w = rand(1, m);

S = zeros(n, n);
for i = 1 : m
S = S + (w(i) * X(i, :)' * X(i, :));
end

S

最佳答案

这可能是最快的方法:

S = X' * bsxfun(@times, X, w(:));

你也可以这样做

S = squeeze(sum(bsxfun(@times, ...
bsxfun(@times, conj(X), permute(X, [1 3 2])), w(:)), 1));

(如果不需要,则删除复共轭)。

关于matlab - 在 MATLAB 中向量化矩阵的加权和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27655731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com