本文介绍了如何从单元格数组中删除相同的行和重复的行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个单元格数组,如下所示:
I have a cell array as follow:
- 'FEM''FEM'
- 'TPB''TP53'
- 'ELL''TP53'
- 'SIT1''GRB2'
-
'TP53''ELL'
- 'FEM' 'FEM'
- 'TPB' 'TP53'
- 'ELL' 'TP53'
- 'SIT1' 'GRB2'
'TP53' 'ELL'
我想要这样的输出:
'TPB''TP53'
'TPB' 'TP53'
有人可以帮我吗?
推荐答案
不确定您的结构,所以我认为是
Not sure of your structure so I assumed it was
{'A','B';...
'C','D';...
'E','F'};
删除所有重复项
Ex:{'A','A'}
dupe = zeros(size(A,1),1);
for row = 1:size(A,1)
dupe(row) = strcmp(A{row,1},A{row,2});
end
A_noDupes = A(~dupe,:);
删除所有重复的行
Ex:{'A','B'},{'B','A'},{'B','B'},{'A','A'}的任意组合,将导致所有内容被删除
注意:这也将删除一些但不是全部的重复对象(例如,如果您有{'E','E'}和{'E','A'},{' E','E'}将被删除)
Note: This will also remove some but not all dupes too, (i.e. if you have {'E','E'} and {'E','A'}, {'E','E'} will be removed)
A = A_noDupes;
for row = 1:size(A,1)
temp = ismember(A,A(row,:))
repeat(row,1) = length(find(temp(:,1) & temp(:,2))) <= 1
end
A_final = A(~repeat,:);
这篇关于如何从单元格数组中删除相同的行和重复的行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!