【问题标题】:How to do (m,n,k) * (n,k) = (m,k) in matlab?如何在matlab中做(m,n,k)*(n,k)=(m,k)?
【发布时间】:2013-02-21 06:56:04
【问题描述】:

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

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

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

【问题讨论】:

  • 我对哪个字母代表什么感到困惑。所以你有一个k 元素元胞数组,其中包含各种大小的矩阵,以及一个长度与第二维上相应矩阵大小相匹配的等长向量元胞数组?

标签: matlab vectorization matrix-multiplication


【解决方案1】:

由于您的数据已经存储在单元阵列中,您可以使用cellfun

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2015-01-29
    相关资源
    最近更新 更多