I have 98x3 matrix with only 7 unique rows of values which are output of some simulation. How do I extract that? I tried Unique function but am not getting unique rows. Below is the original matrix A and matrix after using unique function B.
2 次查看(过去 30 天)
显示 更早的评论
A
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
1.0000 -1.0000 0.0500
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
1.5000 -0.0000 0.0500
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
1.0000 1.0000 0.0500
1.0000 1.0000 0.0500
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
-1.0000 1.0000 0.0500
-1.0000 1.0000 0.0500
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
-1.5000 -0.0000 0.0500
-1.5000 -0.0000 0.0500
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
-1.0000 -1.0000 0.0500
-1.0000 -1.0000 0.0500
B=unique(A,'rows')
B
-1.5000 -0.0000 0.0500
-1.5000 -0.0000 0.0500
-1.0000 -1.0000 0.0500
-1.0000 1.0000 0.0500
0 0 0
1.0000 -1.0000 0.0500
1.0000 1.0000 0.0500
1.5000 -0.0000 0.0500
0 个评论
采纳的回答
Rik
2018-4-23
This is probably due to rounding errors caused by the way doubles are stored in computers. You can use uniquetol instead:
B=uniquetol(A,'ByRows',true);
The tolerance defaults to 1e-6 for single-precision inputs and 1e-12 for double-precision inputs. You can also specify your own tolerance instead.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!