如何在matlab中同时获取数组中的多个最大值?

时间:2016-06-15 15:32:40

标签: arrays matlab sorting

如何在matlab中同时获取数组中的多个最大值? 例如,在矩阵的行或列中 如果我有阵列[45 12 56 98 67 89 23 100 201 345] 我怎样才能同时获得最高价值

1 个答案:

答案 0 :(得分:3)

您可以使用unique默认情况下按升序对数组进行排序(因此您需要flip它),然后您可以使用您关注的第一个N值关于。

vals = flip(unique(data));
maxima = vals(1:N);

如果您不关心唯一最大值,则只需使用sort

vals = sort(data, 'descend');
maxima = vals(1:N);

如果您想要某个行/列的最大值或最小值,则可以使用dim输入minmax

% Maximum per column
maxima = max(data, [], 1);

% Maximum per row
maxima = max(data, [], 2);