如何在matlab中同时获取数组中的多个最大值? 例如,在矩阵的行或列中 如果我有阵列[45 12 56 98 67 89 23 100 201 345] 我怎样才能同时获得最高价值
答案 0 :(得分:3)
您可以使用unique
默认情况下按升序对数组进行排序(因此您需要flip
它),然后您可以使用您关注的第一个N
值关于。
vals = flip(unique(data));
maxima = vals(1:N);
如果您不关心唯一最大值,则只需使用sort
。
vals = sort(data, 'descend');
maxima = vals(1:N);
如果您想要某个行/列的最大值或最小值,则可以使用dim
输入min
或max
。
% Maximum per column
maxima = max(data, [], 1);
% Maximum per row
maxima = max(data, [], 2);