Indexing way to retrieve indices of nonempty elements of a cell array?

8 views (last 30 days)
Is there an indexing way (I couldn't figure one out) to do what this little function does:
function nonempty = findNonEmpty(cellarray)
% Find indices of non-empty array elements of cellarray
% Example:
% findNonEmpty({[], {3}, [], [], eye(100)}) returns [2 5]
nonempty = [];
for i=1:length(cellarray)
if ~isempty(cellarray{i})
nonempty(end+1) = i;
end
end

Accepted Answer

Fangjun Jiang
Fangjun Jiang on 29 Jul 2011
a={[], {3}, [], [], eye(100)};
b=find(~cellfun('isempty',a))

More Answers (1)

David Goldsmith
David Goldsmith on 29 Jul 2011
Jackpot, thanks!!!
Awesome, I wasn't aware of cellfun (obviously); thanks again!

Community Treasure Hunt

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

Start Hunting!