【发布时间】:2014-01-09 15:25:15
【问题描述】:
如何只返回矩阵'A'中不包含某些值的行(这些值是数组'B')?
A = {'A1', 5 'P01,P02,P03,P04,P07';
'A2' 7, 'P07,P10';
'A3' 8, 'P07,P09';
'A4' 8, 'P10,P11'};
B = { 'P07'; 'P10'; 'P11'};
我只需要返回:
'A1' ( P01,P02,P03,P04 not exist in B)
'A3' (P09 not exist in B)
提前感谢您的帮助
【问题讨论】:
-
直接用
for loop遍历元胞数组A 的行,然后用strcmp检查第三个元素是否包含B 的任何值;如果不是这样,则返回每行的第一个元素... -
@Trilarion。好计划,但
strcmp行不通 -
有没有没有循环的方法来获得更好的性能?
-
@疯狂物理学家。你是对的。 strfind 和 B 上的第二个循环与早期突破就可以解决问题
-
@TimmelsNear。你确定你需要更好的性能吗?为了获得更好的性能,我会先用一些数字(如 2 的幂)替换 PXX 文字,然后再进行位运算。
标签: matlab