如何找到 2 个单元阵列之间的重叠?

How to find the overlap between 2 cell arrays?

我想通过逐行比较来找到这 2 个元胞数组之间的重叠,并获得重叠的行:

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

我已经尝试过此命令并获得 <2x1 单元格> 数组,但我想要 <1x2 单元格>(整行):

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

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

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