【问题标题】:form a matrix by picking row with maximum value at first place from a matrix whose each element has various rows with 3 columns each通过从矩阵中选择具有最大值的行来形成矩阵,矩阵的每个元素都有不同的行,每个行有 3 列
【发布时间】:2014-08-25 10:44:58
【问题描述】:

我有一个矩阵Inter[i,j],它的每个元素都有一组行,每行有 3 列。

例如。 Inter[15,40]= {{0,0,0},{1,1,3}}Inter[32,64]={{0,0,0},{1,1,3},{2,2,3}}等等

现在我想要一个矩阵MaxGG[i,j],方法是从Inter[i,j] 中选择一个首先具有最大值的行。

例如MaxGG[15,40] 应该给我{1,1,3}。同样MaxGG[32,64]={2,2,3}。 当我给出这个代码时,它没有给我正确的答案:

MaxGG[i_, j_] := Cases[Inter[i, j], {Max@Inter[i, j][[All, 1]], _, _}];

请建议我此代码有什么问题,并请为我提供正确的代码。

提前致谢:)

【问题讨论】:

    标签: matrix wolfram-mathematica


    【解决方案1】:

    主要问题是Cases 将返回所有匹配案例的列表:-

    Inter[15, 40] = {{0, 0, 0}, {1, 1, 3}};
    Inter[32, 64] = {{0, 0, 0}, {1, 1, 3}, {2, 2, 3}};
    
    MaxGG[i_, j_] := Cases[Inter[i, j], {Max@Inter[i, j][[All, 1]], _, _}]
    
    MaxGG[32, 64]
    

    {{2, 2, 3}}

    您可以通过选择第一个匹配项来丢失外括号:-

    MaxGG[i_, j_] := First@Cases[Inter[i, j], {Max@Inter[i, j][[All, 1]], _, _}]
    
    MaxGG[32, 64]
    

    {2、2、3}

    函数也可以简化:-

    MaxGG[i_, j_] := First@Reverse@Sort@Inter[i, j]
    
    MaxGG[32, 64]
    

    {2、2、3}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-12
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 2013-07-31
      • 1970-01-01
      • 2015-12-05
      相关资源
      最近更新 更多