I have a cell array like
a={'potential'; 'impact'; 'of'; 'stranded'; 'assets'; 'and'; 'other'; 'necessary'; 'regulatory'; 'approvals'; 'assets'}
我想从a数组中减去一个类似于b={'a'; 'and'; 'of'; 'my'; '#'}的数组。
使用setdiff(a,b)在计算差异后对我的数组进行排序。我想要的是在不排序a的情况下从a中消除所有存在于b中的元素。此外,重复项应该被保留,例如,在最终数组中,数组a中的'assets'应该出现在两个位置。
我正在使用以下代码完成此操作:
for i = 1:length(b)
tf = ~strcmp(b(i),a)
a = a(tf,:)
end
但问题在于数组 b 包含超过 200 个字符串元素,这会大大减慢我的代码速度。是否有更好的方法来处理这个问题?