【问题标题】:Get coordinate-wise maximum out of 3 matrices in MATLAB在 MATLAB 中从 3 个矩阵中获取坐标最大值
【发布时间】:2026-01-25 19:40:01
【问题描述】:

假设我有 3 个矩阵 ABC。我想创建包含矩阵最大值的新矩阵。

例如让

A = [ a11 a12.. ] B = [b11 b12 ..] C = [c11 c12 ..]
    [ a21 a22.. ]     [b21 b22 ..]     [c21 c22 ..]

我希望以这种方式构造新矩阵

NewMatr = [max(a11,b11,c11) max(a12,b12,c12) .. ]
          [max(a21,b21,c21) max(a22,b22,c22) .. ]

我想将它们组合成一个包含 3x1 向量的新矩阵,并将 max 应用于这个新矩阵,但我不知道如何。当然,方法总是有的,但我正在为优化而奔跑。

【问题讨论】:

    标签: matlab matrix max


    【解决方案1】:

    除了连接,还可以使用max的2输入版本,两次:

    max(max(A,B),C)
    

    来自max 文档中关于这种不常见的语法:

    C = max(A,B) 返回一个与AB 大小相同的数组,其中最大元素取自ABAB 的维度必须匹配,否则它们可能是标量。

    【讨论】:

    • MAX 文档大多声明它返回一个向量的最大值并且没有注意到二维变量。
    【解决方案2】:

    沿第三个昏暗(使用cat)连接,然后沿该昏暗计算最大值(使用max):

    NewMatr = max(cat(3,A,B,C),[],3);
    

    【讨论】:

      最近更新 更多