remove empty rows of a cell

8 Ansichten (letzte 30 Tage)
Pilar Julieta Tagliero
Pilar Julieta Tagliero am 23 Jun. 2021
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!

Akzeptierte Antwort

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

Weitere Antworten (1)

Joseph Cheng
Joseph Cheng am 23 Jun. 2021
Bearbeitet: Joseph Cheng am 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

Kategorien

Mehr zu Cell Arrays 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