【问题标题】:Filter out rows not containing certain words?过滤掉不包含某些单词的行?
【发布时间】:2017-04-02 17:20:59
【问题描述】:

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

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

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

所以,在我看来,例如C 的前四行可能是:

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

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

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

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

【问题讨论】:

    标签: matlab sorting filter cell-array


    【解决方案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,:)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-05
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-24
      相关资源
      最近更新 更多