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 Kommentar

Jan
Jan am 3 Aug. 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.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 3 Aug. 2015

5 Stimmen

A = A(~any(cellfun('isempty', A), 2), :);

3 Kommentare

Aditya Shukla
Aditya Shukla am 4 Aug. 2015
thanks, it works
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 am 27 Apr. 2021
That is clean and elegant solution Jan. I learn a lot with this community.
Thank you very much.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Manolis Michailidis
Manolis Michailidis am 3 Aug. 2015
Bearbeitet: Manolis Michailidis am 3 Aug. 2015

0 Stimmen

have you tried something like this?
for i=1:length(your_cell_size)
idx(i) = find(~cellfun(@isempty,A{i}));
end
A=A{~idx}

Kategorien

Mehr zu MATLAB finden Sie in Hilfe-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