Why is an empty string not empty? isempty('') returns true, but isempty("") returns false
How to check if an array is empty without using any built in functions
How to write while a set Q is not empty do the following in matlab?
How can I use an empty matrix in a logical if statement?
Use CELLFUN
%# find empty cells
emptyCells = cellfun(@isempty,a);
%# remove empty cells
a(emptyCells) = [];
Note: a(i)==[] won't work. If you want to know whether the the i-th cell is empty, you have to use curly brackets to access the content of the cell. Also, ==[] evaluates to empty, instead of true/false, so you should use the command isempty instead. In short: a(i)==[] should be rewritten as isempty(a{i}).
All above mentioned answers are incorrect, because in my case when i used them, they removed empty cells and then all elements of my cell array situated in a row manner instead of preserving their actual shape. In fact after using this kind of approach your cell array elements tend to be a row cell vector.
I have found this approach which works correctly in my case.
source : https://groups.google.com/forum/#!topic/comp.softsys.matlab/p3NX0fI6u90
approach:
myCellARRAY(all(cellfun(@isempty,myCellARRAY),2), : ) = [];