how to remove empty cells from a cell array

78 Ansichten (letzte 30 Tage)
Manar Anwar
Manar Anwar am 29 Nov. 2022
Bearbeitet: Manar Anwar am 29 Nov. 2022
I have a cell array of size 11x3815 which contains a lot of empty cells that I would like to get rid of, the cell array looks like this
We would like to have only the first column of the cell array, and only keep the rows that has cells with contents in them, I tried one method but it gave me the following shape
which is the first column and under it we have the cells with content, but we need to keep each of them in its original row and not move them , so what is an easy method to do this? I attach the cell aray that I am working on.
THank you in advance
  2 Kommentare
Image Analyst
Image Analyst am 29 Nov. 2022
What if there are two or more columns that have non-empty cells? Would you want to keep all columns that have something in them? Or are you guaranteed that only 0 or 1 column will have a non-empty cell in it?
Manar Anwar
Manar Anwar am 29 Nov. 2022
Bearbeitet: Manar Anwar am 29 Nov. 2022
Yes, I want keep all columns that have something in them, I know a cell array can't have a variable length for each row, so each row will have the size of the row that has more cells with contents but that is fine even if we still had some epmty cells there to do this, it will not be a huge problem. I just want to reduce the cell array to a shape where we can clearly identify the cells in each row.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Arif Hoq
Arif Hoq am 29 Nov. 2022
a=load("cellArray.mat");
A=a.I;
checkemptycell = any(~cellfun('isempty',A), 1);
output = A(:,checkemptycell)
output = 11×8 cell array
{[103]} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double} {[104]} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double} {[109]} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double} {[132]} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double} {[133]} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double} {[166]} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double} {[167]} {355×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double} {[168]} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} {493×8 double} {493×8 double} {[341]} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double} {[342]} { 0×8 double} { 0×8 double} { 0×8 double} {455×8 double} {455×8 double} { 0×0 double} { 0×0 double} {[343]} { 0×8 double} {490×8 double} {490×8 double} { 0×8 double} { 0×8 double} { 0×0 double} { 0×0 double}

Produkte


Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by