Borrar filtros
Borrar filtros

Delete empty cell array

23 visualizaciones (últimos 30 días)
Aditya Shukla
Aditya Shukla el 3 de Ag. de 2015
Comentada: Marcio Teixeira el 27 de Abr. de 2021
Hi all,I have a problem regarding deletion in cell array.
The cell array is like A=
neigh node_id
[] [1]
[3X1] [2]
[5X1] [3]
[2X1] [4]
[] [5]
[9X1] [6]
Now, i want to delete the cells A{1,:} and A{5,:},as (A{1,1}=[] and A{5,1}=[]). Thus resulting array would be like:
A=
neigh node_id
[3X1] [2]
[5X1] [3]
[2X1] [4]
[9X1] [6]
the code
A = A(~cellfun('isempty', A)); is not able to work on this type of array A=cell(6,2).
Thanks
  1 comentario
Jan
Jan el 3 de Ag. de 2015
"is not able to work" is a bad description of the problem. Please post the error message or explain in detail the difference between the results and your expectations.

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 3 de Ag. de 2015
A = A(~any(cellfun('isempty', A), 2), :);
  3 comentarios
Aditya Shukla
Aditya Shukla el 4 de Ag. de 2015
One more solution I found is
B=[];
count=1;
for i=1:size(A,1)
if(size(A{i,1},2)~=0)
B{count,1}=A{i,1};
B{count,2}=A{i,2};
count=count+1;
end
end
Marcio Teixeira
Marcio Teixeira el 27 de Abr. de 2021
That is clean and elegant solution Jan. I learn a lot with this community.
Thank you very much.

Iniciar sesión para comentar.

Más respuestas (1)

Manolis Michailidis
Manolis Michailidis el 3 de Ag. de 2015
Editada: Manolis Michailidis el 3 de Ag. de 2015
have you tried something like this?
for i=1:length(your_cell_size)
idx(i) = find(~cellfun(@isempty,A{i}));
end
A=A{~idx}

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by