How to find value which is berofe max value of an array?

I have an array, let it be r1 = rand(1,100).
I need to find max value and a value which is before maximum. How can i do it?
Maimum = max (r1);
p.s Simple example a = [1, 4, 10, 2, 7, 3, 6];
I know that max is 10, and 7 is before my max value. How to find 7, using Matlab?

 Akzeptierte Antwort

Bryan
Bryan am 22 Nov. 2019
Bearbeitet: Bryan am 22 Nov. 2019
another option would be
max(a(a<max(a)))

4 Kommentare

Thank You!
The effective difference between this solution and my solution using maxk, is that with this solution if there is a "tie" for maximum, this returns a value less than that maximum anyhow, whereas the maxk solution will return multiple copies of the same value.
Also, this version has some subtle behavior if all of the entries are nan or all except one are nan: this version will return empty, whereas the maxk version would return nan.
Bryan
Bryan am 23 Nov. 2019
Bearbeitet: Bryan am 23 Nov. 2019
Yes, I agree. Use Walter Roberson's solution.
They are both valid, just slightly different on edge cases.

Melden Sie sich an, um zu kommentieren.

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by