我有一个3D(或一般n维)矩阵A
与尺寸由列向量乘法三维矩阵
size(A) = [d1 d2 d3 ... dn].
现在我想做的一个列向量v
一个矢量乘法在一个维度(我会做在2个维度,在那里我得到返回的载体 - 例如用于d1 = 2
,d3 = 4
和size(v) = d2
),使
(A*d)_i = sum(a_ij*v_j).
因此,我想通过一个维度减少。
是否有用于返回d3
维列向量v
(A*v)_ij = sum(A_ijk*v_k).
我希望这是一个明确的MATLAB函数(除循环等)。
谢谢!
好吗 - 非常感谢。我希望有更顺畅的事情,但我想这很公平。 – user1763302
此方法仅适用于要相乘的维度是N-d矩阵的最后维度。如果代码适用于N-D矩阵的任何维1 ... N,那将会很好。似乎可以在开始和结束时使用'dimshift'。 – cjh
确实可以用'permute'实现......这需要几分钟的时间来思考它。随意编辑我的答案,或者添加你自己的答案。我有一个最后期限。 – Oli