Azzera filtri
Azzera filtri

To get the column number of max and min number

15 visualizzazioni (ultimi 30 giorni)
I have an array,
a=[ 1 5 3 7 4]
How can I get the position of max and min numbere?
The answer should be
max = 4 %(number 7 which is at column 4 )
min = 1 %(number 1 which is at column 1 )

Risposta accettata

Stephen23
Stephen23 il 17 Feb 2019
>> a = [1,5,3,7,4]
a =
1 5 3 7 4
>> [~,mxi] = max(a)
mxi = 4
>> [~,mni] = min(a)
mni = 1

Più risposte (1)

Image Analyst
Image Analyst il 17 Feb 2019
You can use the min() and max() functions but they have a serious limitation with integer numbers - they only return the FIRST occurrence of the max or min. If it occurs more than once you will not get all the indexes. Try this demo code and understand the results:
a=[ 1 5 3 7 4, 7, 1]
[maxValue, indexOfMax] = max(a)
[minValue, indexOfMin] = min(a)
indexesOfMaxs = find(a == maxValue)
indexesOfMins = find(a == minValue)
The results in the command window:
a =
1 5 3 7 4 7 1
maxValue =
7
indexOfMax =
4
minValue =
1
indexOfMin =
1
indexesOfMaxs =
4 6
indexesOfMins =
1 7
Note how using find() gives you both indexes rather than just the first one.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by