Find location (column) of a [1] in a cell array
2 views (last 30 days)
Show older comments
Lauren Harkness
on 19 Oct 2017
Commented: Karleigh Irwin
on 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)
Accepted Answer
Walter Roberson
on 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 Comments
More Answers (0)
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!