フィルターのクリア

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 回表示 (過去 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

採用された回答

Rik
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.
  1 件のコメント
akash sonnad
akash sonnad 2018 年 4 月 25 日
Thanks for the hint. Since i was'nt interested in accuracy of data so rounded it off till 3rd decimal digits. It helps !!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFourier Analysis and Filtering についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by