How to find maximum without duplicates?

I have the matrix, A = [1 2 1 0 0 2; 2 1 4 2 0 0; 1 1 0 2 1 1; 1 1 0 1 4 2] I understand that max(A) gives the maximum for each column,but how do I create a logical array locating the maximum of each column? If there is a tie, I just want to consider the first occurrence of the maximum.

5 commentaires

Paolo
Paolo le 3 Juin 2018
By 'tie' you refer to the case where the same max value appears twice in the column? As is the case for number 2, in columns 4 and 6 of your example?
Zev Hirt
Zev Hirt le 3 Juin 2018
yeah
I'm not sure I understand though, how can you find the max if you do not compare all values?
If the output of max(A) is
2 2 4 2 4 2
What is your desired output for matrix A?
Zev Hirt
Zev Hirt le 3 Juin 2018
I edited the question. For example, if I do A == max(A), I will have a logical one twice in column 4 and 6.
Zev Hirt
Zev Hirt le 3 Juin 2018
Modifié(e) : Zev Hirt le 3 Juin 2018
My ultimate desired output is the value of the row of the maximum value in each column of A.

Connectez-vous pour commenter.

 Réponse acceptée

Jan
Jan le 3 Juin 2018
Modifié(e) : Jan le 3 Juin 2018
A = [1 2 1 0 0 2; 2 1 4 2 0 0; 1 1 0 2 1 1; 1 1 0 1 4 2];
[v, ind] = max(A, [], 1);
Now ind is the row index of the first maximum value per column.
And a "logical array locating the maximum of each column":
siz = size(A);
L = false(siz);
L(sub2ind(siz, ind, 1:siz(2))) = true;

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Centre d'aide et File Exchange

Produits

Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by