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

9 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

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

Weitere Antworten (1)

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

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by