gpt4 book ai didi

matlab - bsxfun-like 用于矩阵乘积

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

我需要将矩阵 A 与 n 个矩阵相乘,然后得到 n 矩阵。例如,将 2x2 矩阵与 3 个堆叠为 2x2x3 Matlab 数组的 2x2 矩阵相乘。 bsxfun 是我通常在这种情况下使用的,但它只适用于元素操作。我可以做类似的事情:

blkdiag(a, a, a) * blkdiag(b(:,:,1), b(:,:,2), b(:,:,3))

但我需要一个任意 n 的解决方案 - ?

最佳答案

您可以 reshape 堆叠矩阵。假设您有 k-by-k 矩阵 a 和一堆 m k-by-k 矩阵 sb 并且您想要 a*sb(:,:,ii) 的乘积 ii = 1 ..米。那么你所需要的就是

sza = size(a);
b = reshape( b, sza(2), [] ); % concatenate all matrices aloong the second dim
res = a * b;
res = reshape( res, sza(1), [], size(sb,3) ); % stack back to 3d

关于matlab - bsxfun-like 用于矩阵乘积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21088832/

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