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 个评论

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.
My ultimate desired output is the value of the row of the maximum value in each column of A.

请先登录,再进行评论。

 采纳的回答

Jan
Jan 2018-6-3
编辑:Jan 2018-6-3
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;

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Matrices and Arrays 的更多信息

产品

版本

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by