MATLAB: Cell array: select cells based on length

cell arraycell arraysMATLAB

Hi everyone,
If i have a cell array like this:
{1×3 double} {1×3 double} {2×3 double} {1×3 double} {4×3 double}
how can i extract only the 1×3 double cells (of which I do not know the exact location into cell array)?
Thank's a lot!

Best Answer

C = cell(5,1) ;
C{1} = rand(1,3) ;
C{2} = rand(1,3) ;
C{3} = rand(4,3) ;
C{4} = rand(1,3) ;
C{5} = rand(4,3) ;
row = cellfun(@(x) size(x,1),C);
iwant = C(row>1)
Or you can use a loop:
C = cell(5,1) ;
C{1} = rand(1,3) ;
C{2} = rand(1,3) ;
C{3} = rand(4,3) ;
C{4} = rand(1,3) ;
C{5} = rand(4,3) ;
for i = 1:length(C)
if size(C{i},1)>1
C{i}
end
end