Matlab 版 (精华区)
发信人: zjliu (秋天的萝卜), 信区: Matlab
标 题: [合集]再请教:怎样剔除一个向量中的重复元素
发信站: 哈工大紫丁香 (2003年06月04日20:40:30 星期三), 站内信件
────────────────────────────────────────
xuxi (HiaHiaHiaHia) 于 2003年06月02日19:31:08 星期一 说道:
比如
i=[1 2 2 3]
now I want to get j=[1 2 3]
how to?
thanks
────────────────────────────────────────
Epoch (J2000.0) 于 2003年06月02日20:20:52 星期一 说道:
笨办法。假设i是排好的。
i(1:3)-i(2:4),find,......
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年06月02日21:05:06 星期一 说道:
刚找到一个函数
j=unique(i)
────────────────────────────────────────
hotboy (热血男儿) 于 你相同的元素是挨在一起的吗?
我提供一个相同元素可不再一起的同元素剔除代码?如下
如I=[1 2 2 3 4 3 5 3]
>> a=length(I);
>> [I1,ind1]=sort(I);
>> I2=[0,I1(1:a-1)];
>> ind2=find((I1-I2)==0);
>> I(ind1(ind2))=[]
you will find I=[1 2 3 4 5]
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年06月02日21:05:52 星期一 说道:
呵呵,我的简单些
────────────────────────────────────────
hotboy (热血男儿) 于 还是版组zjliu厉害,我服了。您是怎么找到的?????我又复杂化了。
不过刚才我看了一下帮助,我的代码可以不改变原来元素的位置。
────────────────────────────────────────
zjliu (秋天的萝卜) 于 2003年06月02日21:16:32 星期一 说道:
我呀,只是在书上看到的,
你的方法也不错,
unique(i)
给出的结果好像是从大到小
────────────────────────────────────────
Ustcer (山城棒棒儿军) 于
那请看这个是什么回事?
>> I=[4 1 3 9 0 3 1 9];
>> a=length(I);
>> [I1,ind1]=sort(I);
>> I2=[0,I1(1:a-1)];
>> ind2=find((I1-I2)==0);
>> I(ind1(ind2))=[]
I =
4 1 3 9
>>
--
http://www.cheunghoyee.com/bbs/uploadFace/242_200341416215150326.gif
※ 来源:.哈工大紫丁香 bbs.hit.edu.cn [FROM: 202.103.207.58]
────────────────────────────────────────
hotboy (热血男儿) 于 谢谢Ustcer提醒:
我修正了bug,代码改为:
>>a=length(I);
>> [I1,ind1]=sort(I);
>> I2=[I1(a),I1(1:a-1)];
>> ind2=find((I1-I2)==0);
>> I(ind1(ind2))=[]
如果I=[4 1 3 9 0 3 1 9];
you will find
I=[4 1 3 9 0]
────────────────────────────────────────
xuedy (dingyu) 于 看了一下unique的代码似乎很繁,用matlab命令可以简单写成
B=sort(A);
B(find(diff(B)==0)=[];
────────────────────────────────────────
hotboy (热血男儿) 于 你这样写的前提是相同元素挨在一起啊。
────────────────────────────────────────
ghb (闭门修炼 之 桌子开花) 于 2003年06月03日10:32:20 星期二 说道:
不是的,薛老师的程序是对的,在第一句话中B=sort(A);已经对A进行了排序,并赋值给B
第二句好像少了个')'.hehe
────────────────────────────────────────
ghb (闭门修炼 之 桌子开花) 于 2003年06月03日10:33:59 星期二 说道:
~~~~是从小到大
────────────────────────────────────────
Systems (Control is Controlling Myself) 于 2003年06月03日10:38:02 星期二 说道:
那不是把A重排了?如果人家要求A不重排呢?
────────────────────────────────────────
ghb (闭门修炼 之 桌子开花) 于 2003年06月03日10:43:06 星期二 说道:
前面已经给出了源代码
────────────────────────────────────────
xuxi (HiaHiaHiaHia) 于 2003年06月03日13:08:11 星期二 说道:
多谢大家热情帮忙
有了matlab版 毕业设计不用愁 ^_^
────────────────────────────────────────
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.352毫秒