Filter löschen
Filter löschen

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.

1 Ansicht (letzte 30 Tage)
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

Akzeptierte Antwort

Rik
Rik am 23 Apr. 2018
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.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by