Delete empty cell array

25 vues (au cours des 30 derniers jours)
Aditya Shukla
Aditya Shukla le 3 Août 2015
Commenté : Marcio Teixeira le 27 Avr 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 commentaire
Jan
Jan le 3 Août 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.

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 3 Août 2015
A = A(~any(cellfun('isempty', A), 2), :);
  3 commentaires
Aditya Shukla
Aditya Shukla le 4 Août 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 le 27 Avr 2021
That is clean and elegant solution Jan. I learn a lot with this community.
Thank you very much.

Connectez-vous pour commenter.

Plus de réponses (1)

Manolis Michailidis
Manolis Michailidis le 3 Août 2015
Modifié(e) : Manolis Michailidis le 3 Août 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}

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by