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 Comments

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?
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?
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 on 3 Jun 2018
Edited: Zev Hirt on 3 Jun 2018
My ultimate desired output is the value of the row of the maximum value in each column of A.

Sign in to comment.

 Accepted Answer

Jan
Jan on 3 Jun 2018
Edited: Jan on 3 Jun 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;

More Answers (0)

Categories

Products

Release

R2018a

Asked:

on 3 Jun 2018

Edited:

Jan
on 3 Jun 2018

Community Treasure Hunt

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

Start Hunting!