Matlab矩阵乘法元素从不同大小的矩阵明智

时间:2015-07-10 14:08:45

标签: matlab optimization matrix multiplication

我正在使用向量乘法而不是for循环来优化MatLab脚本。在那里,我遇到了矢量选择的问题。

在我的计算中,我得到了两个矩阵M1(x,x,x,x)M2(x,x)。当我尝试向量化这些矩阵并将它们元素化时,我得到一个错误。它们的尺寸不匹配。

product = M1(1,1,:,1) .* M2(:,1)

size(M1(1,1,:,1) -> 1 1 6
size(M2(:,1)) -> 6 1

如果我在M1上使用命令squeeze它正在工作。

product = squeeze(M1(1,1,:,1)) .* M2(:,1)

问题是,挤压需要花费很多时间(1/5 of the complete time -> ~50s)。如何在不使用挤压的情况下仍然使用我的矩阵?有人有想法吗?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

shiftdim通常更快,所以请尝试

product = shiftdim(M1(1,1,:,1),2) .* M2(:,1)