How to find number and position from cell

1 次查看(过去 30 天)
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 个评论
Jan
Jan 2013-2-28
编辑:Jan 2013-2-28
A cell requires curly braces, because [1 1 [] [] 1] is the same as [1,1,1].

请先登录,再进行评论。

回答(1 个)

Jan
Jan 2013-2-28
编辑:Jan 2013-2-28
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));

类别

Help CenterFile Exchange 中查找有关 Data Type Identification 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by