Seeking Help: Deleting Redundancy in a Structure Array

2 次查看(过去 30 天)
Hello,
I hope this message finds you well. I have a question regarding comparing elements in a structure array in MATLAB. Below is the code snippet I am working with, and I'm looking for guidance on identifying and removing redundancy
clear
clc
a(1).pos=[1,7,1];
a(2).pos=[1,7,1];
a(3).pos=[6,5,5];
a(4).pos=[1,4,3];
a(5).pos=[2,2,2];
In this example, I want to find and delete redundant elements within the structure array. Specifically, if I know that a(1).pos and a(2).pos have the same elements, I want to retain only one instance.
I am seeking assistance on how to code this efficiently. Any insights or code snippets would be greatly appreciated. Thank you in advance for your help!
  2 个评论
Bruno Luong
Bruno Luong 2024-1-24
Can we assume
a(i).pos
are 1 x 3 numercal array or they can be something else more generic?
Wei Wen
Wei Wen 2024-1-24
编辑:Wei Wen 2024-1-24
hi, it is in numerical array.
Here is a sample of the actual value from the main code. I would like to compare the value from the pop.Position. If there is redundancy, i would like to eliminate it. Are there any ways to do that?
There is no redundancy in the figure below.

请先登录,再进行评论。

采纳的回答

Bruno Luong
Bruno Luong 2024-1-24
a(1).pos=[1,7,1];
a(2).pos=[1,7,1];
a(3).pos=[6,5,5];
a(4).pos=[1,4,3];
a(5).pos=[2,2,2];
P = cat(1, a.pos);
[~, I] = unique(P, 'rows');
a = a(sort(I));
a.pos
ans = 1×3
1 7 1
ans = 1×3
6 5 5
ans = 1×3
1 4 3
ans = 1×3
2 2 2

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by