Find location (column) of a [1] in a cell array
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Lauren Harkness
le 19 Oct 2017
Commenté : Karleigh Irwin
le 20 Oct 2017
If I have a 1x3 cell array that looks something like this [] [] [1], or this [1][][], how would I get my code to print the index at which the 1 is? so for the first example, it's in column 3 and I would like to output a 3, and for the second example the 1 is in column 1/position 1 so I would like to output a 1. (Note: this will always be for a 1xN cell array with only one row)
Réponse acceptée
Walter Roberson
le 19 Oct 2017
find(~cellfun(@isempty, YourCell))
Those kinds of arrays are common when you are using strfind() or regexp().
It is common in such cases that using a logical vector does as well or better than finding the index, especially if there might be multiple matches:
mask = ~cellfun(@isempty, YourCell);
selected = YourOriginal(mask);
and not infrequently
mask = cellfun(@isempty, YourCell);
YourOriginal(mask) = [];
leaving only the matching entries.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Characters and Strings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!