How to find number and position from cell

2 views (last 30 days)
Philip
Philip on 28 Feb 2013
I have a large cell file (1.6*10^6 rows) with only ones and []. I want to find the positions of the ones, preferably converted to ones and zeros. Since it's a large file, I would rather not do it in a loop.
Example:
a = [1 1 [] [] 1]
have ones in position 1,2,5
  1 Comment
Jan
Jan on 28 Feb 2013
Edited: Jan on 28 Feb 2013
A cell requires curly braces, because [1 1 [] [] 1] is the same as [1,1,1].

Sign in to comment.

Answers (1)

Jan
Jan on 28 Feb 2013
Edited: Jan on 28 Feb 2013
a = {1, 1, [], [], 1};
index = find(~cellfun('isempty', a));
Perhaps this is slightly faster:
index = find(cellfun('prodofsize', a));
While this is slower:
index = find(cellfun(@(c) isequal(c, 1), a));

Tags

Community Treasure Hunt

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

Start Hunting!