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

3 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!

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!