## How to find second largest value in an array?

### Minu (view profile)

on 7 Jun 2013
Latest activity Commented on by Image Analyst

on 28 Dec 2015

### Andrei Bobrov (view profile)

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...

Walter Roberson

### Walter Roberson (view profile)

on 7 Jun 2013

What do you want to do if there are multiple instances of the maximum or minimum?

## Products

No products are associated with this question.

### Andrei Bobrov (view profile)

on 7 Jun 2013
Edited by Andrei Bobrov

### Andrei Bobrov (view profile)

on 7 Jun 2013

[ii,ii] = sort(A);
out = A(ii([2,end-1]));

out = A([2,end-1]);

more variant

A1 = unique(A);
out = A1([2,end-1]);

Jan Simon

### Jan Simon (view profile)

on 7 Jun 2013

Ficed typo: Of course -Inf is needed instead of +Inf to mask an existing maximium.

@Walter: Exactly. While the original message "A=[1;10;15;30;40;50;100]" looks like the OP talks about a double vector with finite values, the another type of input or values must be considered.

Even if another value is -Inf, my method replies the correct result. But NaN is the better choice.

moon pie

### moon pie (view profile)

on 28 Dec 2015

How to get the index with the second minimum or maximum value in an array?

Image Analyst

### Image Analyst (view profile)

on 28 Dec 2015

Define second minimum. In the array [1,1,2,3] what is the second minimum? Is it 1 or is it 2?

### Fernando (view profile)

on 17 Nov 2014

function [ y ] = second_min( x )

y = min(x(x>min(x)));

end

&

function [ y ] = second_max( x )

y = max(x(x<max(x)));

end

### Walter Roberson (view profile)

on 7 Jun 2013

for K = A
if sum(A > K) == 1
disp(K)
end
end

per isakson

### per isakson (view profile)

on 7 Jun 2013

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi