相关疑难解决方法(0)

MATLAB:如何向量乘两个矩阵数组?

我有两个三维数组,前两个维度表示矩阵,最后一个维度通过参数空间计算,作为一个简单的例子拿

A = repmat([1,2; 3,4], [1 1 4]);
Run Code Online (Sandbox Code Playgroud)

(但假设A(:,:,j)每个人都不同j).一个如何能够容易地进行以每个j两个这样的矩阵阵列的矩阵乘法AB

C = A; % pre-allocate, nan(size(A,1), size(B,2)) would be better but slower
for jj = 1:size(A, 3)
  C(:,:,jj) = A(:,:,jj) * B(:,:,jj);
end
Run Code Online (Sandbox Code Playgroud)

当然可以胜任,但是如果第三维更像是1e3元素,那么这非常慢,因为它不使用MATLAB的矢量化.那么,有更快的方法吗?

arrays matlab matrix vectorization matrix-multiplication

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