How do I detect empty cells in a cell array? I know the command to remove the empty cell is a(1) = [], but I can’t seem to get MATLAB to automatically detect which cells are empty.
Background:
I preallocated a cell array using a=cell(1,53).
Then I used if exist(filename(i)) and textscan to check for a file, and read it in. As a result, when the filename(i) does not exist, an empty cell results and we move onto the next file.
When I’m finished reading in all the files, I would like to delete the empty cells of a. I tried if a(i)==[]
Use CELLFUN
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 oftrue/false, so you should use the commandisemptyinstead. In short:a(i)==[]should be rewritten asisempty(a{i}).