Delete empty cell array

4 ビュー (過去 30 日間)
Aditya Shukla
Aditya Shukla 2015 年 8 月 3 日
コメント済み: Marcio Teixeira 2021 年 4 月 27 日
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 件のコメント
Jan
Jan 2015 年 8 月 3 日
"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.

サインインしてコメントする。

採用された回答

Jan
Jan 2015 年 8 月 3 日
A = A(~any(cellfun('isempty', A), 2), :);
  3 件のコメント
Aditya Shukla
Aditya Shukla 2015 年 8 月 4 日
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 2021 年 4 月 27 日
That is clean and elegant solution Jan. I learn a lot with this community.
Thank you very much.

サインインしてコメントする。

その他の回答 (1 件)

Manolis Michailidis
Manolis Michailidis 2015 年 8 月 3 日
編集済み: Manolis Michailidis 2015 年 8 月 3 日
have you tried something like this?
for i=1:length(your_cell_size)
idx(i) = find(~cellfun(@isempty,A{i}));
end
A=A{~idx}

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by