相关疑难解决方法(0)

将3D矩阵与2D矩阵相乘

假设我有一个AxBxC矩阵X 和一个BxD矩阵Y.

是否有一种非循环方法,通过它我可以将每个C AxB矩阵与Y

matlab matrix vectorization matrix-multiplication

25
推荐指数
4
解决办法
2万
查看次数

广义矩阵乘积

我是MATLAB的新手.M×K矩阵乘以K×N矩阵的正规矩阵乘法C = A * B- 具有c_ij = sum(a_ik * b_kj, k = 1:K).如果我希望将其替换c_ij = sum(op(a_ik, b_kj), k = 1:K)为一些简单的二进制操作,该op怎么办?有没有什么好的方法可以在MATLAB(或者甚至是内置函数)中对它进行矢量化?

编辑:这是我能做的最好的.

% A is M x K, B is K x N
% op is min
C = zeros(M, N);
for i = 1:M:
    C(i, :) = sum(bsxfun(@min, A(i, :)', B));
end
Run Code Online (Sandbox Code Playgroud)

matlab vectorization matrix-multiplication bsxfun

8
推荐指数
1
解决办法
799
查看次数

Matlab:通过矢量列表减去3D数组中的矢量

我有n组,每组有m个维数为d的向量.这些由ad*m*n矩阵A表示.

我有n个维数为d的向量,由ad*n矩阵B表示.

现在我想通过B中相应的向量i减去组i中的所有m个向量(我对所有i = 1,...,n都这样做).

这可以简单地完成:

C = zeros(size(A));
for  i = 1:n
    for j = 1:m
        C(:,j,i) = A(:,j,i) - B(:,i);
    end
end
Run Code Online (Sandbox Code Playgroud)

但是,由于循环,这非常慢.有人可以建议我这么快的方法吗?

预先感谢您的帮助.

matlab matrix linear-algebra vectorization multidimensional-array

3
推荐指数
1
解决办法
736
查看次数