根据另一个从第一个单元格数组中删除元素

时间:2013-12-18 14:02:05

标签: arrays matlab cell-array

我有两个单元格数组。我需要根据另一个从第一个单元格数组中删除元素:

C = {'A1', 'A2', 'A3', 'A4', 'A5', 'A6'}

B = { 'A2','A5'};

我想得到这个结果:

C = {'A1', 'A3', 'A4', 'A6'}

我尝试了这个但是不起作用

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

2 个答案:

答案 0 :(得分:3)

find函数只接受一个参数并仅返回True值的索引(对于数组非数字或非单元数组非零)。

出于您的目的,请查看setdiff功能:

C = setdiff(A,B)

答案 1 :(得分:3)

C = {'A1', 'A2', 'A3', 'A4', 'A5', 'A6'};
B = { 'A2','A5'};

您需要ismember函数用于单元格数组:

>> ismember(C, B)
ans =
    0   1   0   0   1   0

所以我们反过来找到:

C(find(~ismember(C, B)))