【发布时间】:2012-01-15 21:05:39
【问题描述】:
我有一个像
这样的元胞数组a={'potential'; 'impact'; 'of'; 'stranded'; 'assets'; 'and'; 'other'; 'necessary'; 'regulatory'; 'approvals'; 'assets'}
并想从中减去一个数组,例如 b={'a'; '和'; '的'; '我的'; '#'}。
在计算出差异后,使用 setdiff(a,b) 对我的数组进行排序。我想要的是从 a 中消除 b 中存在的所有元素而不对 a 进行排序。也应该保留重复,例如。数组 a 中的“资产”应出现在最终数组的两个位置。
我正在使用的以下代码可以完成这项工作:
for i = 1:length(b)
tf = ~strcmp(b(i),a)
a = a(tf,:)
end
但问题是数组 b 包含超过 200 个字符串元素,这大大减慢了我的代码速度。有没有更好的方法来做到这一点?
【问题讨论】: