How to find number and position from cell

2 vues (au cours des 30 derniers jours)
Philip
Philip le 28 Fév 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 commentaire
Jan
Jan le 28 Fév 2013
Modifié(e) : Jan le 28 Fév 2013
A cell requires curly braces, because [1 1 [] [] 1] is the same as [1,1,1].

Connectez-vous pour commenter.

Réponses (1)

Jan
Jan le 28 Fév 2013
Modifié(e) : Jan le 28 Fév 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));
  1 commentaire
Philip
Philip le 28 Fév 2013
Thank a lot, this worked out fine!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by