How to remove repeating elments from a matrix?
1 次查看(过去 30 天)
显示 更早的评论
I have following matrix.
A =
1 2 2 1 3
2 1 3 1 1
Where, first two columns are in principle are unique combinations. I would like to remove one column, either 1st or 2nd, and generate following matrix
B =
2 2 1 3
1 3 1 1
OR
B =
1 2 1 3
2 3 1 1
I tried using following
[G,ia,ic] = unique(A(:,1:2),'rows');
uA = A(ia,:)
but it doesn't solve the problem and gives following solution
uA =
1 2 2 1 3
2 1 3 1 1
0 个评论
采纳的回答
Cedric
2017-11-3
编辑:Cedric
2017-11-3
Almost, the idea was correct but you were not working on the correct dimension. Also, sorting the input array vertically makes columns composed of the same elements identical regardless of their order:
>> [~, ia] = unique( sort(A, 1).', 'rows', 'stable' ) ;
>> B = A(:, ia)
B =
1 2 1 3
2 3 1 1
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!