完全删除在数组Matlab中出现多次的元素

时间:2017-10-02 15:42:38

标签: matlab

给出以下数组:

A=[1,2,3,4,5,6,7,8,9,2,4,5,8,4,6,7,1,2,8,5,14,100,101];

对于任何一般情况,如何获得:

如何能够以最简单的方式删除多次出现的每个元素,而无需任何计算工作。
A=[3,9,14,100,101];

3 个答案:

答案 0 :(得分:3)

您可以这样做:

res = A(sum(A==A') == 1)  % keep elements whose frequency is exactly 1
> res =
 3     9    14   100   101

由于sum(A==A')返回每个元素的频率。

答案 1 :(得分:0)

您可以先对元素进行排序,然后删除与其邻居之一具有相同值的所有元素,如下所示:

IsADirectoryError

答案 2 :(得分:0)

在2016b之前的版本中(在implicit expansion成为事物之前),您可以使用bsxfun来模仿使用隐式扩展的Jean's result

out = A(sum(bsxfun(@(x,y) x==y, A, A.'))==1)

>> out = [3 9 14 100 101]