怎么做(m,n,k)*(n,k)=(m,k)在matlab中?

时间:2013-03-06 13:04:23

标签: matlab vectorization matrix-multiplication

我发现了这个相关的问题: Multiply columns of a matrix with 2d matrix slices of a 3d matrix in MatLab

我有同样的问题但在我的情况下m可能会因每个切片而异。有没有办法用mtimesx做到这一点?因为m变化,我的3d张量存储为单元格列表,每个单元格包含一个矩阵。另外,我的2d矩阵是一个包含向量的单元格列表。

有没有一种方法可以在没有for循环的情况下进行这种乘法运算?

1 个答案:

答案 0 :(得分:1)

由于您的数据已存储在cellarray中,因此您可以使用cellfun

res = cellfun( @(x,y) x*y, mnkCell, nkCell, 'UniformOutput', false );