MATLAB:如何从单元格数组B中删除单元格数组A的元素?

Mik*_*ike 2 string matlab cell-array

我有一个字符串的两个单元阵列A,并B分别持有60个400主题名称.单元阵列A中的所有主体也在单元阵列中B.我想要做的是A从单元格数组中删除单元格数组中列出的主题,B以达到单元格数组C,该数组仅包含我想要使用的主题.

gno*_*ice 7

如果您不关心正在排序的结果,可以使用SETDIFF函数:

C = setdiff(B, A);
Run Code Online (Sandbox Code Playgroud)

如果您需要的结果与原始单元格数组的顺序相同,并且删除B了名称A,则可以使用ISMEMBER函数:

C = B(~ismember(B, A));
Run Code Online (Sandbox Code Playgroud)

更新:在较新版本的MATLAB中,SETDIFF中添加了一个附加参数来控制输出元素排序.要维护原始订单,您现在可以执行以下操作:

C = setdiff(B, A, 'stable');
Run Code Online (Sandbox Code Playgroud)