【发布时间】:2018-05-22 00:16:48
【问题描述】:
我有一个非常大的数据集,如下所示:
x1 x2
2 5
4 10
5 2
....
我想找到所有具有相同值(重复)的行,但是,不管顺序如何。在上面的示例中,我想找到第 1 行和第 3 行,因为它们都有值 2 和 5。
由于我有大约 14000 次比较,我如何使用 MATLAB 以有效的方式做到这一点?
【问题讨论】:
-
[2 5; 4 10; 5 2; 6 7; 6 7]的输出是什么? -
@LuisMendo 不知何故是一个矩阵,其中每一行都有包含重复值的行的索引。所以在这个例子中可能是
[1 3; 4 5] -
@lala_12 这对于
[2 5; 4 10; 5 2; 6 7; 6 7; 6 7]将失败,因为您想要输出[1 3; 4 5 6],它不是一个有效的矩阵。给我们一个“也许”你想要的定义不是一个明确定义的问题,请决定你喜欢的特定输出格式。像{{2,5}, {1,3}; {6,7}, {4,5,6}}这样的单元格数组可以工作,但并不优雅。 -
@Wolfie 如果你有
[1 3 0; 4 5 6],问题就会得到解决。但是,我没有考虑按照您的建议制作单元阵列。我更喜欢那个输出。 -
可以使用
sort(...,2)、unique和accumarray完成。我现在没有时间(也没有电脑);我会在当天晚些时候尝试这样做
标签: matlab loops dataframe duplicates