How to find second largest value in an array?
353 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Minu
am 7 Jun. 2013
Beantwortet: Anil Kumar
am 29 Jun. 2022
Hi
I want to find the second largest and minimum value in array? A=[1;10;15;30;40;50;100].I want to get the result as Second minimum value=10 and second largest value=50 Help me plz...
1 Kommentar
Walter Roberson
am 7 Jun. 2013
What do you want to do if there are multiple instances of the maximum or minimum?
Akzeptierte Antwort
Andrei Bobrov
am 7 Jun. 2013
Bearbeitet: Andrei Bobrov
am 7 Jun. 2013
[ii,ii] = sort(A);
out = A(ii([2,end-1]));
for your example (A) just:
out = A([2,end-1]);
more variant
A1 = unique(A);
out = A1([2,end-1]);
8 Kommentare
Walter Roberson
am 10 Feb. 2019
Amjad Iqbal comments,
Hello Researchers!! I need guidance, as i have a matrix H1 of 1576*1024, which is vertical concatination of four channels, in H1 for continuous four rows it represent one frame of each channel, i need to find maximum and second value for every four group of rows. untill now i just get to find maximum and minimum value for each row. kindly guide me, how can i apply 2nd loop or design function, so that i can get results of second maximum for each four group of rows, and in total i will have 394 max and 394 second maximum results.
H1 = vertcat(A,B,C,D)
temp_A = zeros(1576,2);
for N = 1:1:1576
temp_A(N,1) = max(H1(N,:));
temp_A(N,2) = min(H1(N,:));
end
Weitere Antworten (5)
Fernando
am 17 Nov. 2014
Bearbeitet: Walter Roberson
am 14 Okt. 2017
function [ y ] = second_min( x )
y = min(x(x>min(x)));
end
&
function [ y ] = second_max( x )
y = max(x(x<max(x)));
end
6 Kommentare
Walter Roberson
am 10 Okt. 2020
Define second largest. In the array [1,2,3,3] what is the second largest? Is it 2 or is it 3?
Steven Lord
am 6 Nov. 2017
1 Kommentar
Pen-Li (Ben) Yu
am 3 Nov. 2021
A=[1;10;15;30;40;50;100];
Amax2 = maxk(A,2); Amax2(2)
Amin2 = mink(A,2); Amin2(2)
Dedaunan Rimbun
am 5 Nov. 2017
Bearbeitet: Dedaunan Rimbun
am 5 Nov. 2017
I think this one is the best. It has some pros:
- You can specify the largest, second largest, third largest, and so on.
- You can also see the index
Note: I just modify what Walter Roberson suggest.
for k=1:s %s is the number highest number will be shown
k2=0;
for K = A'
k2=k2+1;
if sum(A > K) == k-1
M(k,1)=K;
I(k,1)=k2;
end
end
end
0 Kommentare
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!