У меня есть массив ячеек в MATLAB, давайте скажем cell_arr
, и он имеет нулевые записи, а также записи ячейки non-zeros. Например:Как удалить нулевые записи внутри массива ячеек в MATLAB?
cell_arr = {0, 0, 0, 0, 0, {1x3 cell}, {1x3 cell}, {1x3 cell}, {1x3 cell}};
Может кто-нибудь, пожалуйста, как удалить эти нулевые записи из cell_arr
или, чтобы найти индексы ненулевых элементов? Кроме того, я хочу избежать цикла for
для выполнения этого задания.
Я уже пробовал find
функция, однако find
функция не применима для массивов ячеек. Мне интересно, существует ли одно выражение/выражение строки, выполняющее эту работу?
Использование функции 'isequal (c, 0)' позволяет избежать использования двух тестов '~ iscell (c) && c == 0' – marsei
@Magla true, однако я думаю, что это легче отлаживать, так как следует понимать, что всякий раз, когда первый тест не выполняется, второй тест не будет выполнен. – Nick
@Nick: я не вижу ничего трудного для отладки о 'C_pruned = C (~ cellfun (@ (x) isequal (x, 0), C))' ... Still, +1 :) –