在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'
和/或'OVR'
的行?即以便上面的例子变成:
[ 123 54.3 'BLU' 'UNDR'; 125 51.3 'GREN' 'OVR'; 129 51.1 'BLU' 'OVR']
我尝试将细胞转换成矩阵格式(cell2mat),然后毫不费力地过滤矩阵。提前致谢!
答案 0 :(得分:1)
使用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,:)