How to find number and position from cell

1 Ansicht (letzte 30 Tage)
Philip
Philip am 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 Kommentar
Jan
Jan am 28 Feb. 2013
Bearbeitet: Jan am 28 Feb. 2013
A cell requires curly braces, because [1 1 [] [] 1] is the same as [1,1,1].

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Jan
Jan am 28 Feb. 2013
Bearbeitet: Jan am 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));

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by