我有一个张量a(可以是任意维)和一个矩阵M。我想通过展平张量来乘以它们,得到一个矩阵
在MATLAB上,我可以简单地执行以下操作:
function B = multiplyflatten(A,M)
B = M*A(:,:)
为了进行测试,可以使用
A=rand(8,5,4,4)
B=rand(1,8)
如何使用numpy-ndarrays在python上获得等价的东西?下面的块不会产生等价的东西
def multiplyflatten(A,M):
B=np.matmul(M,A[:,:])
A(:,:)
是在MATLAB中将许多维度压缩为矩阵的第二维度。在Python上有没有一种简单的方法可以做到这一点
如果我理解
A(:,:)
在MATLAB中正确地将许多维度压缩为矩阵的第二维度,那么最后的A(:,:)
的形状为(8,5*4*4),如A=rand(8,5,4,4)
的示例所示。在这种情况下,这应该相当于A(:,:)
:-1隐式计算将
A
拟合到二维矩阵所需的剩余形状。根据@hegdep的评论,matlab存储数组的默认格式是F.contiguous
(而numpy的默认存储格式是C-contiguous
)相关问题 更多 >
编程相关推荐