Recherche et filtrage des éléments dans une matrice de cellules de MATLAB
J'ai une liste (cellule de tableau) d'éléments avec des structures comme ceci:
mystruct = struct('x', 'foo', 'y', 'bar', 's', struct('text', 'Pickabo'));
mylist = {mystruct <more similar struct elements here>};
Maintenant, je voudrais filtre maliste pour toutes les structures à partir desquelles.texte == 'Pickaboo' ou une autre chaîne prédéfinie. Quelle est la meilleure façon d'atteindre cet objectif dans MATLAB? Évidemment, ce n'est facile pour les tableaux, mais quelle est la meilleure façon de le faire pour les cellules?
OriginalL'auteur smichak | 2010-08-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser CELLFUN pour cela.
Cependant, pourquoi faites-vous une cellule de structures? Si votre structs tous les mêmes champs, vous pouvez faire un tableau de structures. Pour obtenir le succès, vous devez ensuite utiliser ARRAYFUN.
OriginalL'auteur Jonas
Si l'ensemble de vos structures dans votre matrice de cellules ont les mêmes champs (
'x'
,'y'
, et's'
) puis vous pouvez enregistrermylist
comme une structure de tableau au lieu d'une cellule de tableau. Vous pouvez convertirmylist
comme suit:Maintenant, si tous vos champs
's'
également contenir des structures avec les mêmes champs en eux, vous pouvez les réunir tous ensemble dans la même façon, puis vérifiez votre champ'text'
à l'aide de STRCMP:Ici,
isMatch
sera un index logique vecteur de la même longueur quemylist
avec celles où une correspondance est trouvée, et remet à zéro sinon.OriginalL'auteur gnovice
Utilisation
cellfun
.OriginalL'auteur YYC