MATLAB: как удалить элементы массива ячеек A из массива ячеек B? - PullRequest
2 голосов
/ 11 декабря 2010

У меня есть два массива ячеек из строк A и B, которые содержат 60 и 400 имен субъектов соответственно.Все субъекты в массиве ячеек A также находятся в массиве ячеек B.То, что я хотел бы сделать, это удалить объекты, перечисленные в массиве ячеек A, из массива ячеек B, чтобы получить массив ячеек C, который содержит только те предметы, с которыми я хочу работать.

1 Ответ

7 голосов
/ 11 декабря 2010

Если вас не волнует сортировка результата, вы можете использовать функцию SETDIFF :

C = setdiff(B, A);

Если вам нужен результат в том же порядке, что и в исходной ячейкемассив B с удаленными именами из A можно использовать функцию ISMEMBER :

C = B(~ismember(B, A));

ОБНОВЛЕНИЕ: В новых версиях MATLABдополнительный аргумент был добавлен в SETDIFF для управления сортировкой выходного элемента.Чтобы сохранить первоначальный порядок, теперь вы можете сделать это:

C = setdiff(B, A, 'stable');
...