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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 3 Jun. 2018
Bearbeitet: Jan am 3 Jun. 2018

0 Stimmen

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;

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2018a

Gefragt:

am 3 Jun. 2018

Bearbeitet:

Jan
am 3 Jun. 2018

Community Treasure Hunt

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

Start Hunting!

Translated by