【发布时间】:2015-10-21 22:24:14
【问题描述】:
我有以下设置
matrix2D_1 = zeros(40,191);
matrix2D_2 = zeros(40,191);
matrix3D_1 = zeros(40,191,191);
for j = 1:40
for jw = 1:191
matrix2D_1(j,jw) = sum(squeeze(matrix3D_1(j,jw,:))'*matrix2D_2' );
end
end
所以我想要 3D 矩阵的第 3 维的所有乘积与第一个 2D 矩阵的元素的总和,这是矩阵乘积
squeeze(matrix3D_1(j,jw,:))'*matrix2D_2'
然后将这些结果的总和存储在第一个二维矩阵中。 由于我必须在一个大循环中运行它,这在我的代码中花费的时间最多。我无法理解如何以更优雅的方式对其进行矢量化。任何更快的解决方案将不胜感激......
【问题讨论】:
标签: performance matlab matrix vectorization matrix-multiplication