过滤掉不包含某些单词的行?
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,:)
在 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,:)