如何仅返回矩阵“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)
在此先感谢您的帮助
由于您正在处理形状奇怪的元胞数组和一些奇怪的字符串操作,我不知道如何用一个语句干净地解决这个问题。您可以尝试以下循环:
R = {};
for i = 1 : size(A, 1)
test = strsplit(A{i, 3}, ',');
for j = 1 : length(test)
if nnz(strcmp(B, test{j})) == 0
R = [R; A(i, 1)];
break;
end
end
end
结果是:
R =
'A1'
'A3'
当然,如果可以仅使用实际矩阵中每个搜索字符串的数字分量而不是字符串元胞数组,那么这些计算可以更快地进行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)