Как я обнаруживаю пустые ячейки в массиве ячеек?

Как я обнаруживаю пустые ячейки в массиве ячеек? Я знаю, что команда для удаления пустой ячейки a(1) = [], но я, может казаться, не заставляю MATLAB автоматически обнаруживать, какие ячейки пусты.

Фон: Я предварительно выделил использование массива ячеек a=cell(1,53). Затем я использовал if exist(filename(i)) и textscan, чтобы проверить на файл и считать его в. В результате, когда filename(i) не существует, пустая ячейка заканчивается, и мы переходим на следующий файл.

Когда я закончен, читая во всех файлах, я хотел бы удалить пустые ячейки a. Я попробовал if a(i)==[]

34
задан Amro 3 December 2014 в 16:00
поделиться

1 ответ

Используйте CELLFUN

%# find empty cells
emptyCells = cellfun(@isempty,a);
%# remove empty cells
a(emptyCells) = [];

Примечание: a(i)==[] не работает. Если вы хотите узнать, пуста ли i-я ячейка, вам нужно использовать фигурные скобки для доступа к содержимому ячейки. Кроме того, ==[] оценивает пустоту, а не true/false, поэтому вместо этого следует использовать команду isempty. Короче говоря: a(i)==[] следует переписать как isempty(a{i}).

56
ответ дан 27 November 2019 в 16:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: