How to find number and position from cell

2 visualizaciones (últimos 30 días)
Philip
Philip el 28 de Feb. de 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 comentario
Jan
Jan el 28 de Feb. de 2013
Editada: Jan el 28 de Feb. de 2013
A cell requires curly braces, because [1 1 [] [] 1] is the same as [1,1,1].

Iniciar sesión para comentar.

Respuestas (1)

Jan
Jan el 28 de Feb. de 2013
Editada: Jan el 28 de Feb. de 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));

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by