find second minimum in a row in matlab without sorting
Ältere Kommentare anzeigen
find second minimum in a row in matlab without sorting.
excluding zero
example A = [ 3.5 2 1.6 1.456 0 1.9 2.6 ; 3.8 2.6 3.9 0 6 1.564 0 ]
3 Kommentare
the cyclist
am 16 Okt. 2019
Sounds like homework. What have you tried?
Nitin Sapre
am 17 Okt. 2019
Adam Danz
am 17 Okt. 2019
Why avoid sorting?
Akzeptierte Antwort
Weitere Antworten (2)
Ekaterina Sadovaya
am 18 Okt. 2019
You can exclude the first minimum. So, for example for the first row it will be
A1 = A(1,:);
[first_min_value, index] = min(A1);
A1(index) = [];
second_min_value = min(A1);
7 Kommentare
...or a variation of (hint)
max(mink(A,2))
Nitin Sapre
am 18 Okt. 2019
Prior to searching for the 2nd min, you could replace all 0s with NaN or Inf. I still think this is homework since there's no explanation as to why sorting is not allowed so I'll only make that suggestion and you can figure out the rest.
hint: use ==
Nitin Sapre
am 18 Okt. 2019
Adam Danz
am 18 Okt. 2019
No need for a loop.
Here's a similar example.
x = randi(20,8,8) %Random integers between 1 and 20
% Replace all values greater than the mean.
x(x > mean(x(:))) = NaN;
Nitin Sapre
am 19 Okt. 2019
Nitin Sapre
am 19 Okt. 2019
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!