How to get 2nd minimun value from matrix?

I want to get the 2nd minimum number from a matrix. Elements in matrix are random and i don't want to sort them. for example
A=[2 6 83 14 29;17 42 31 90 23;17 52 43 81 29;48 11 90 21 58];

回答 (2 件)

Jeremy
Jeremy 2015 年 1 月 29 日

1 投票

It is a little cumbersome but for any array x, this should work:
min(x(x~=min(x(:))))
Guillaume
Guillaume 2015 年 1 月 29 日

0 投票

I don't want to sort them.
Asking for the nth element is by definition sorting them.
One possible way (which obviously does a sort):
A = [2 6 83 14 29;17 42 31 90 23;17 52 43 81 29;48 11 90 21 58];
u = unique(A);
a2 = u(2) %achtung baby!

2 件のコメント

Zahid Iqbal Rana
Zahid Iqbal Rana 2015 年 1 月 29 日
its not giving correct result.
Guillaume
Guillaume 2015 年 1 月 29 日
Huh! And what is the 'correct result' you expect?

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

カテゴリ

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

タグ

質問済み:

2015 年 1 月 29 日

コメント済み:

2015 年 1 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by