2010-12-11 261 views
2

我有两个单元格阵列的字符串AB分别持有60和400个主题名称。单元阵列A中的所有主题也都在单元阵列B中。我想要做的是从单元阵列B中删除单元格阵列A中列出的主题,以获得单元阵列C,该单元阵列仅包含我想要使用的主题。MATLAB:如何从单元阵列B中删除单元阵列A的元素?

回答

7

如果你不关心结果进行排序,你可以使用函数SETDIFF

C = setdiff(B, A); 

如果需要以相同的顺序将结果作为原始细胞阵列BA名删除,你可以使用函数ISMEMBER

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

UPDATE:在MATLAB中的新版本,一个额外的参数已经被添加到SETDIFF来控制输出元素排序。要保持原始顺序,您现在可以执行此操作:

C = setdiff(B, A, 'stable'); 
+0

感谢man的快速帮助。 – Mike 2010-12-11 19:22:57

+0

一如既往的好回答,我不知道setdiff函数。迈克 - 你清楚地喜欢它,你可以点击答案上的向上箭头,然后单击它下面的复选框。这是对答复者给予“感谢”的更正式的方式。 – 2010-12-12 21:23:33