How to find second largest value in an array?
520 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Minu
el 7 de Jun. de 2013
Respondida: Anil Kumar
el 29 de Jun. de 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 comentario
Walter Roberson
el 7 de Jun. de 2013
What do you want to do if there are multiple instances of the maximum or minimum?
Respuesta aceptada
Andrei Bobrov
el 7 de Jun. de 2013
Editada: Andrei Bobrov
el 7 de Jun. de 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 comentarios
Jonnathan Cespedes
el 14 de Feb. de 2018
@Andrei Bobrov, how can i do it for each row in a for loop?
Walter Roberson
el 10 de Feb. de 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
Más respuestas (5)
Fernando
el 17 de Nov. de 2014
Editada: Walter Roberson
el 14 de Oct. de 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 comentarios
Walter Roberson
el 10 de Oct. de 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
el 6 de Nov. de 2017
1 comentario
Pen-Li (Ben) Yu
el 3 de Nov. de 2021
A=[1;10;15;30;40;50;100];
Amax2 = maxk(A,2); Amax2(2)
Amin2 = mink(A,2); Amin2(2)
Dedaunan Rimbun
el 5 de Nov. de 2017
Editada: Dedaunan Rimbun
el 5 de Nov. de 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 comentarios
Anil Kumar
el 29 de Jun. de 2022
try this
a=A(:,1);
[p,q]=max(a);
b=A(q,1);
[p1,q1]=max(a(a~=b))
0 comentarios
Ver también
Categorías
Más información sobre Matrices and Arrays en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!