remove empty rows of a cell

8 visualizaciones (últimos 30 días)
Pilar Julieta Tagliero
Pilar Julieta Tagliero el 23 de Jun. de 2021
Comentada: Pilar Julieta Tagliero el 24 de Jun. de 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!

Respuesta aceptada

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

Más respuestas (1)

Joseph Cheng
Joseph Cheng el 23 de Jun. de 2021
Editada: Joseph Cheng el 23 de Jun. de 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

Categorías

Más información sobre Cell Arrays en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by