我试图在Matlab中乘2个矩阵,但是它们没有相同的维数。事实上,我的乘法不是标准的矩阵乘法。我有一个31乘1矩阵(或向量)和31乘512乘512矩阵.我想取我的向量的第一个元素,然后用它乘以第一个512乘以512,得到一个新的31乘512乘以512的数组。但我不想使用for循环来解决性能问题。
发布于 2015-10-06 06:00:43
这是bsxfun的简单用例。
bsxfun(@times, v, M)或者,您可能需要permute you向量,v,这样它的单子维数与您想要扩展的方向是正交的(在您的情况下,它实际上是沿着第一维和第二维展开的),即将v转换为31乘1乘1(虽然我不确定这是否必要,但是如果您有错误的话,尝试它),就像在你的情况下沿着第三维展开一样:
bsxfun(@times, permute(v,[1,3,2]), M)注意,另一种常见的方法是使用repmat和.*,但是bsxfun更有效。
https://stackoverflow.com/questions/32962627
复制相似问题