A logical indexing for row-wise max
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
cyril
il 12 Apr 2014
Risposto: Azzi Abdelmalek
il 12 Apr 2014
I'm wondering if there is anything simpler than:
x = [2 3;3 1]
[a,b]=max(x, [], 2);
% now return the matrix containing row-wise max logical indexes, in this example [0 1;1 0]
result = zeros(size(x));
for i=1:size(x,1)
result(i,b(i)) = 1;
end
I had thought to use
result = x==repmat(a,1,size(x,2))
But I'm afraid about floating-point issues
0 Commenti
Risposta accettata
Azzi Abdelmalek
il 12 Apr 2014
x = [2 3;3 1]
[a,b]=max(x, [], 2);
result = zeros(size(x));
result(sub2ind(size(x),1:size(x,1),b'))=1
0 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Logical in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!