Как я обнаруживаю пустые ячейки в массиве ячеек? Я знаю, что команда для удаления пустой ячейки a(1) = []
, но я, может казаться, не заставляю MATLAB автоматически обнаруживать, какие ячейки пусты.
Фон: Я предварительно выделил использование массива ячеек a=cell(1,53)
. Затем я использовал if exist(filename(i))
и textscan, чтобы проверить на файл и считать его в. В результате, когда filename(i)
не существует, пустая ячейка заканчивается, и мы переходим на следующий файл.
Когда я закончен, читая во всех файлах, я хотел бы удалить пустые ячейки a
. Я попробовал if a(i)==[]
Используйте CELLFUN
%# find empty cells
emptyCells = cellfun(@isempty,a);
%# remove empty cells
a(emptyCells) = [];
Примечание: a(i)==[]
не работает. Если вы хотите узнать, пуста ли i-я ячейка, вам нужно использовать фигурные скобки для доступа к содержимому ячейки. Кроме того, ==[]
оценивает пустоту, а не true
/false
, поэтому вместо этого следует использовать команду isempty
. Короче говоря: a(i)==[]
следует переписать как isempty(a{i})
.