gpt4 book ai didi

matlab - 从 3d 张量乘以 2d 矩阵

转载 作者:行者123 更新时间:2023-12-01 15:10:33 24 4
gpt4 key购买 nike

我有一个 3d 张量 A,大小 (A)=[2 2 N]。我想得到 2x2 矩阵的乘积:

result=A(:,:,N)*A(:,:,N-1)*...*A(:,:,1)

这可以用for循环来完成:

result=A(:,:,N);
for i=(N-1):-1:1
result=result*A(:,:,i);
end;

但是如何将这个操作向量化呢?

最佳答案

这不能用标准的 Matlab 向量化。然而,一些 Mathworks 工程师发布了一个非常快速的 MEX 实现,它是经过修改的 mtimes,称为 mtimesx,它确实支持您想要的各种东西做(以及更多)。参见 MTIMESX - Fast Matrix Multiply with Multi-Dimensional Support ,来自文档:

If A is (2,3,4,5) and B is (3,6,4,5), then mtimesx(A,B) would result in C(2,6,4,5), where C(:,:,i,j) = A(:,:,i,j) * B(:,:,i,j), i=1:4, j=1:5 which would be equivalent to the MATLAB m-code:

C = zeros(2,6,4,5);
for m=1:4
for n=1:5
C(:,:,m,n) = A(:,:,m,n) * B(:,:,m,n);
end
end

关于matlab - 从 3d 张量乘以 2d 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29119234/

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