【问题标题】:Efficient matrix multiplication in MatlabMatlab中的高效矩阵乘法
【发布时间】:2016-10-19 03:24:54
【问题描述】:

我有两个矩阵,A(N x K)和B(N x M),我想将AB集中到张量C(N x K x M ) 其中C(n,k,m) = A(n,k) * B(n,m)。我知道如何在 python 中做到这一点,比如

C = B[:,numpy.newaxis,:] * A[:,:,numpy.newaxis]

谁能告诉我高效地做同样事情的matlab代码吗?

【问题讨论】:

    标签: python matlab numpy matrix matrix-multiplication


    【解决方案1】:

    利用bsxfun 的隐式扩展功能。使用permute 将您的B 用作Nx1xM 矩阵:

    C = bsxfun(@times, A, permute(B, [1, 3, 2]));
    

    从 MATLAB R2016b 开始,您可以通过这种方式获得相同的结果:

    C = A * permute(B, [1, 3, 2]);
    

    【讨论】:

    • 我还要提到不需要bsxfun: (C = A * permute(B, [1, 3, 2]);) 的新 MATLAB 语法(适用于 R2016b 以后)。
    • @Dev-iL 谢谢,我包含了你的建议。
    猜你喜欢
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 2014-02-25
    • 1970-01-01
    相关资源
    最近更新 更多