finding the 10 lowest values

I have a matrix with a lot of data, and i want to find the 10 lowest values of a specific collum.
Does anybody know how to do that?
i was thinking about using the function min() but it does not allow me to select a specific collum, or finding more than the one value which is the lowest.

 採用された回答

Artik Crazy
Artik Crazy 2011 年 10 月 13 日

1 投票

  • Let's say you have a matrix of 10x10:
x=rand (10,10);
  • Sort it by the columns in ascending order:
y=sort (x,1, 'ascend')
*Now take the 5 first rows - these are the lowest values in every column:
z=y(1:5, :)

その他の回答 (2 件)

the cyclist
the cyclist 2011 年 10 月 13 日

3 投票

First 10 values of "sorted_x" is what you want.
A = rand(100,10);
columnToSort = 7;
[sorted_x, index] = sort(A(:,columnToSort),'ascend');
Marc
Marc 2017 年 2 月 23 日

0 投票

But if I want the indexes of these 10 values? Should I sort to find the values and then "find" these values in the matrix?
Is there a more elegant way?

1 件のコメント

Adam
Adam 2017 年 2 月 23 日
the cyclist gave an answer that also returns indices. You can just feed these directly into your array.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeShifting and Sorting Matrices についてさらに検索

質問済み:

2011 年 10 月 13 日

コメント済み:

2017 年 2 月 23 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by