我有一个矩阵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]], _, _}];
请告诉我此代码有什么问题,请为我提供正确的代码。
提前致谢:)
答案 0 :(得分:0)
主要问题是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}