CALCULATION OF MAXIMUM VALUE IN EVERY ROW
Show older comments
suppose there is a matrix of 3x3 size i want to calculate the maximum value in every row.
ex: 3 4 5
6 9 0
1 2 3
the result i should get at the end should be like this
0 0 1
0 1 0
0 0 1
[EDITED, code formatted, Jan]
2 Comments
Brahima DRABO
on 16 Jan 2016
suppose your matrix is A: result = A==max(A,[],2)
Stephen23
on 16 Jan 2016
@Brahima DRABO: you should put this as an answer too: you would get votes.
Note to others: ignore the accepted answer, it is very poor code.
Accepted Answer
More Answers (3)
Jonathan Sullivan
on 7 Mar 2012
m = [ 3 4 5
6 9 0
1 2 3];
mx = max(m,[],2); % EDIT: was max(m,2); Oops
out = bsxfun(@eq,m,mx);
Jan
on 6 Mar 2012
[v, sub] = max(a, [], 2); % [EDITED], was "max(a, 2)"
sa = size(a);
b = zeros(sa);
index = sub2ind(sa, 1:sa(1), sub);
b(index) = 1;
I cannot try it currently and I find the documentation of sub2ind confusing in this point: Perhaps the 2nd and 3rd argument must be swapped: sub2ind(sa, sub, 1:sa(1)).
raj
on 7 Mar 2012
0 votes
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!