Alternative to 'ismember' for structures

17 visualizzazioni (ultimi 30 giorni)
Hello! I have a structure, which I need to update at every step. However, I would like to include the update only if it has not been stored yet. This would be quite easy with a list and ismember. However, ismember does not work with structures. Has anyone got any suggestions? Thank you!
As an example, for greater clarity, consider the following problem:
A.a = 1;
A.b = 2;
A(2).a = 2;
A(2).b = 3;
A(3).a = 3;
A(3).b = 4;
B.a = 2;
B.b = 3;
Now, it is clear that B is contained within A (line 2, or B=A(2)).
If they were lists, I would use the command:
ismember(B,A,'rows);
What can I do if I would like to keep them as structures? Thank you!

Risposta accettata

Adam
Adam il 26 Ago 2016
any( arrayfun( @(x) isequal( B, x ), A ) )
should do the job I think.

Più risposte (1)

Azzi Abdelmalek
Azzi Abdelmalek il 26 Ago 2016
You can compare
ismember([B.a],[A.a])
ismember([B.b],[A.b])
  1 Commento
Enrico Anderlini
Enrico Anderlini il 26 Ago 2016
Thank you! Your answer works too and it employs ismember. However, the other answer is more compact and results in a single boolean, which is what I needed to start with.

Accedi per commentare.

Categorie

Scopri di più su Structures in Help Center e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by