how to remove empty cell array contents?
815 views (last 30 days)
Show older comments
Hello, I've got a cell array, lets say:
R =
[ 691x2 double]
[]
[]
[]
[]
[ 12x2 double]
[ 11x2 double]
[]
[]
[ 112x2 double]
[ 13x2 double]
Does anyone know of a quick way I could remove the non-zero elements of the cell array? This cell array will be a different length and will have a different number of non-zero elements each time, dependent on another loop
Thanks, Jim
0 Comments
Accepted Answer
Aurelien Queffurust
on 25 Jan 2012
To remove empty cell array contents (title of your question) :
R(~cellfun('isempty',R))
12 Comments
Chintan Modi
on 9 May 2017
Edited: Chintan Modi
on 9 May 2017
I am also suffering from this problem. I want to delete the empty cells from this "sf" variable (i.e. shown in picture). I wish to delete it from variable so that whenever I try to find column size of the particular row; i'll be able to get only the matrix of that number cell and don't want to count the empty cell. for e.g. if i write
size(sf(3,:),2)
ans i want i.e. 5
but here it shows the 31
can someone help me to solve this problem?
Jan
on 9 May 2017
@Chintan Modi: Use the flags to catch the attraction to inapropriate messages, not for posting data concerning your problem.
Please do not attach a new question as a comment to an existing answer. Open a new thread instead.
There is no picture. What is the type of your variable sf? size(sf(3,:),2) replies the size of the array and does not care about the contents of the cell elements.
If you want to count the non-empty cells, use:
sum(~cellfun('isempty', sf(3, :))
More Answers (1)
David Young
on 25 Jan 2012
Rnew = R(~cellfun(@isempty, R))
3 Comments
Daniel Bridges
on 1 Mar 2017
>> data(~structfun(@isempty,data))
Error using structfun
Inputs to STRUCTFUN must be scalar structures.
See Also
Categories
Find more on Cell Arrays in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!