过滤掉不包含某些单词的行?

Filter out rows not containing certain words?

在 MATLAB (R2015b) 中,我有一个非常大的 Cell C,其中包含多个可以简化为的列向量:

C = [9000x1 double] [9000x1 double] {9000x1 cell} {9000x1 cell}

C 中的最后两列,两个单元格(9000x1 单元格),第一个单元格列包含单词 'GREN''BLU',第二个单元格列随机包含单词 'OVR''UNDR'

因此,在我看来,例如 C 的前四行可能具有以下外观:

[ 123 54.3 'BLU' 'UNDR'; 125 51.3 'GREN' 'OVR'; 128 55.1 'GREN' 'UNDR'; 129 51.1 'BLU' 'OVR']

如何过滤掉 NOT 包含单词 'BLU' and/or 'OVR' 的行? IE。这样上面的例子就变成了:

[ 123 54.3 'BLU' 'UNDR'; 125 51.3 'GREN' 'OVR'; 129 51.1 'BLU' 'OVR']

我试过将单元格转换为矩阵格式 (cell2mat),然后过滤矩阵,但没有成功。提前致谢!

使用 strcmp:

C = { 123, 54.3 ,'BLU', 'UNDR'; 125, 51.3, 'GREN', 'OVR'; 128, 55.1, 'GREN', 'UNDR'; 129,51.1,'BLU','OVR'};
idxs = strcmp(C(:,3),'BLU') | strcmp(C(:,4),'OVR');
CC = C(idxs,:)