Deduplicate Rows from Struct

2 views (last 30 days)
I have the following struct-
Database.x = [1 0 1
2 0 2
3 0 1
1 0 1];
Database.f = [10 20
20 30
30 40
10 15];
In Database.x, there are duplicate rows (1st and 4th one). I want to deduplicate them and based on that, I want to remove the corresponding row from Databse.f
How do I do this?
  2 Comments
Matt J
Matt J on 9 Aug 2022
I want to remove the corresponding row from Databse.f
In referene to your example, how would you decide whether the first or fourth row of f should be removed?
Rounak Saha Niloy
Rounak Saha Niloy on 9 Aug 2022
Fourth row is to be removed.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 9 Aug 2022
Edited: Matt J on 9 Aug 2022
How about this?
Database.x = [1 0 1
2 0 2
3 0 1
1 0 1];
Database.f = [10 20
20 30
30 40
10 15];
[Database.x,I]=unique(Database.x,'rows');
Database.f=Database.f(I,:);
Database.x
ans = 3×3
1 0 1 2 0 2 3 0 1
Database.f
ans = 3×2
10 20 20 30 30 40

More Answers (0)

Categories

Find more on Function Creation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!