【问题标题】:How to find the overlap between 2 cell arrays?如何找到 2 个单元格数组之间的重叠?
【发布时间】:2017-06-02 06:33:16
【问题描述】:

我想通过逐行比较它们来找到这两个单元格数组之间的重叠并获得重叠的行:

ex1={'BRDT','TBP';'php','alm';'BRCA1','TP53'};  
ex2={'TBP','HIST1H2BH';'RB1','TK2';'php','alm'};
desire_output={'php','alm'}

我试过这个命令并得到 数组,但我想要 (整行):

 a=intersect(ex1,ex2,'stable');

【问题讨论】:

    标签: matlab overlap


    【解决方案1】:

    如何使用 ismember 并选择所需的行?

    ex1={'BRDT','TBP';'php','alm';'BRCA1','TP53'};
    ex2={'TBP','HIST1H2BH';'RB1','TK2';'php','alm'};
    out = ismember(ex1,ex2) ;
    iwant = ex1(all(out,2),:) ;
    

    【讨论】:

    • 你能解释一下为什么这个命令:iwant = ex1(all(out,2),:);为什么是 ex1 而不是 ex2 ??
    • 结果输出适用于 ismemebr 的第一个输入。如果你想检查 ex2...使用 ismember(ex2,ex1)。
    • 哦,明白了!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 2014-04-05
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多