matlab中为什么用unique数组去掉重复元素后,还有相同的元素

读入下面的图

I=imread('E:/ms.jpg');%读图[L W]=size(rgb2gray(I));%尺寸I0=rgb2hsv(I);%转换颜色空间A=zeros(1,1);k=1;K=L*W;A=zeros(1,K);for j=1:380for i=1:360A(1,k)=I0(j,i,1);k=k+1;endend
B=unique(A);
数组A

数组B

我抓狂了。。。

因为那些数本来就是不同的,你双击那几个相同的数字,看一下它们究竟是多少。Matlab只给你显示了这个小数的前几位罢了。
再有,你的代码效率低。

换成
I=imread('E:/ms.jpg');%读图
[I0,~,~]=rgb2hsv(I);%转换颜色空间
B = unique(I0(:));
就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-03
A =

1 2 3 2 1 5 1 4

>> b=unique(A)

b =

1 2 3 4 5
相似回答