logical indexing with a structure

38 vues (au cours des 30 derniers jours)
MathWorks Support Team
MathWorks Support Team le 15 Août 2018
I have a structure, "s", and I am trying to use logical indexing to create a new structure, "s1", for when the field, "field1", is equivalent to 1 and a new structure, "sc" for when the field, "field2", is equivalent to 'c'. How can I do this?
>> s = struct('field1', {1,2,3,4}, 'field2', {'ab', 'b', 'c', 'c'});

Réponse acceptée

MathWorks Support Team
MathWorks Support Team le 15 Août 2018
Logical indexing with structures is similar to other logical indexing in MATLAB. The one difference is when you are trying to use fields in the equivalence statement. This is because s.field1 has multiple outputs. To get around this, simply put brackets [] or {} around s.field1 in order to get one output that is an array or cell.
>> s1 = s([s.field1]==1);
>> sc = s(strcmp({s.field2}, 'c'))

Plus de réponses (0)

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Produits


Version

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by