给出以下数组:
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];
答案 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]