remove empty rows of a cell

2 views (last 30 days)
Hello
How could I remove the empty rows of a cell array? For example if I have,
K =
{0×0 double } {0×0 double}
{0×0 double } {0×0 double}
{[ 0 10]} {[ 0]}
{[ 0 10]} {[ 0]}
How do I remove the first two rows?
Thanks in advance!

Accepted Answer

Scott MacKenzie
Scott MacKenzie on 23 Jun 2021
reshape(K(~cellfun('isempty',K)), [], size(K,2))

More Answers (1)

Joseph Cheng
Joseph Cheng on 23 Jun 2021
Edited: Joseph Cheng on 23 Jun 2021
you can use the function cellfun() in conjunction with isempty:
clear K
%generate dummy K
for Cind = 1:2
for Rind = 1:4
if Rind<3
K{Rind,Cind}=[];
else
K{Rind,Cind}=randi(10,1,2);
end
end
end
%use the function isempty for each cell in K
emptyK= cellfun(@isempty,K)
emptyKrow = sum(emptyK,2)>1 %check to see which row in K is empty >1 for fully empty row >= if atleast 1 empty is in there
K(emptyKrow,:)=[] %kill off empty rows

Community Treasure Hunt

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

Start Hunting!