A logical indexing for row-wise max
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
採用された回答
Azzi Abdelmalek
2014 年 4 月 12 日
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 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!