【发布时间】:2019-10-18 04:30:28
【问题描述】:
我有一段这样的表格:
X Y Value
__ __ __
1 2 6.9
1 3 6.8
1 4 8.1
2 1 7.2
2 3 11.7
2 4 16
3 1 22.6
3 2 20.5
3 3 18.1
… … …
对于具有相同X 的每组行,我只需要选择具有最大Value 的行。如何生成这样的表格?
X Y Value
__ __ __
1 4 8.1
2 4 16
3 1 22.6
到目前为止我的代码只产生一行:
X = [1; 1; 1; 2; 2; 2; 3; 3; 3];
Y = [2; 3; 4; 1; 3; 4; 1; 2; 4];
Value = [6.9; 6.8; 8.1;7.2;11.7;16;22.6;20.5;18.1];
T = table(X,Y,Value);
[~,maxidx] = max(Value);
T(maxidx,:)
%{
ans =
1×3 table
X Y Value
_ _ _____
3 1 22.6
%}
【问题讨论】:
-
也许尝试创建一个二维矩阵,而不是将 Y 作为向量。每一行(或你喜欢的每一列)都对应于 X 中的一个值。然后你可以尝试在这个矩阵上使用 max()。
-
edit 功能并不是要讨论您对建议的解决方案所遇到的问题。请为此使用 cmets,或提出新问题。
标签: matlab max grouping subset matlab-table