matlab中如何去掉数组中重复的值
可以采用unique()函数进行操作,代码如下:
>> x=[1 1 1 2 2 2 3 3 3 3 3 ]
x =
1 1 1 2 2 2 3 3 3 3 3
>> b=unique(x)
b =
1 2 3
该方法快捷方便,但是精度较低。
扩展资料:
matlab的unique函数,格式是“b = unique (a)”功能是取集合a的不重复元素构成的向量。也存在其他格式,如:b = unique (A,'rows') 返回A、B不同行元素组成的矩阵。[b,i,j] = unique (…),i体现b中元素在原向量(矩阵a)中的位置;j体现原向量(矩阵a)在b中的位置。
可以使用一下代码统计相同元素个数:
>> a=[2 3 8 2 4 1 2 3 1];
>> b=unique(a);
>> c(1:length(b))=0;
>> for n=1:length(b)
c(n)=length(find(a==b(n)));
end
>> c
c =
2 3 2 1 1
可以采用unique()函数进行操作,代码如下:>> x=[1 1 1 2 2 2 3 3 3 3 3 ]
x =
1 1 1 2 2 2 3 3 3 3 3
>> b=unique(x)
b =
1 2 3
该方法快捷方便,但是精度较低。
扩展资料
matlab的unique函数,格式是“b = unique (a)”功能是取集合a的不重复元素构成的向量。也存在其他格式,如:b = unique (A,'rows') 返回A、B不同行元素组成的矩阵。[b,i,j] = unique (…),i体现b中元素在原向量(矩阵a)中的位置;j体现原向量(矩阵a)在b中的位置。
可以使用一下代码统计相同元素个数:
>> a=[2 3 8 2 4 1 2 3 1];
>> b=unique(a);
>> c(1:length(b))=0;
>> for n=1:length(b)
c(n)=length(find(a==b(n)));
end
>> c
c =
2 3 2 1 1
比如说A=[1,2,3,3,4],那么unique(A)=[1,2,3,4];
如果A=[1,2,3;3,4,5],那么unique(A)=[1,2,3,4,5];
unique(A,'rows')用来去除矩阵A中重复的行,
比如说A=[1,2,3;4,5,6;1,2,3],
那么unique(A,'rows')=[1,2,3;4,5,6];
综上,如果x=[1 1 1 2 2 2 3 3 3 3 3],
那么unique(x)=[1,2,3]。
for j=i+1:length(x)
if x(j)==x(i)
x(j)=0;%或者其他标识符号。
end
end
end
idx=find(x==0);%与前面的标识符号一致。
x(idx)=[];%删除标识项。
x
执行以上程序即可,可能有点复杂。还有更简单的方法。