【发布时间】:2016-06-15 15:32:40
【问题描述】:
如何在 matlab 中同时获取数组中的多个最大值? 例如在矩阵的行或列中 如果我有一个数组 [45 12 56 98 67 89 23 100 201 345] 我怎样才能同时获得最高值
【问题讨论】:
如何在 matlab 中同时获取数组中的多个最大值? 例如在矩阵的行或列中 如果我有一个数组 [45 12 56 98 67 89 23 100 201 345] 我怎样才能同时获得最高值
【问题讨论】:
您可以使用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);
【讨论】: