我有以下数据: EG1:
5.34 -32.82 0.71
7.65 -32.74 0.67
9.89 -32.76 0.69
13.81 -32.74 0.68
17.20 -33.27 0.71
22.83 -33.28 0.61
27.10 -33.40 0.67
29.22 -33.20 0.66
输出:比较max(:,1)
,我需要提取29.22 -33.20 0.66
EG2:
4.58 -49.98 1.27
5.84 -50.13 1.23
7.33 -50.15 1.24
10.39 -50.18 1.28
13.60 -50.03 1.27
17.73 -50.07 1.34
10.99 -49.90 1.41
10.81 -49.76 1.43
输出应为:17.73 -50.07 1.34
编辑:
4.58 -49.98 1.27 5.31 -38 1.12
5.84 -50.13 1.23 7.65 -38 1.11
7.33 -50.15 1.24 9.88 -38.01 1.12
10.39 -50.18 1.28 13.78 -38 1.12
13.6 -50.03 1.27 17.2 -38.07 1.13
17.73 -50.07 1.34 22.8 -38.06 1.14
10.99 -49.9 1.41 27.19 -38.06 1.14
10.81 -49.76 1.43 29.29 -38.02 1.13
输出:为每个连续的列执行(a == max(a(:,1)),:)
17.73 -50.07 1.34
29.29 -38.02 1.13
答案 0 :(得分:4)
A=sortrows(A);
A(end,:)
ans =
29.2200 -33.2000 0.6600
sortrows
按行排序矩阵,第一行的最大元素显然在末尾。因此,提取end
行并完成。
如果不对数据集进行排序,速度会更快:
A(A==max(A(:,1)),:)
这会在A
达到最大值的第一列中找到该条目,并将其用作logical index来提取整行。