声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3145|回复: 7

[编程技巧] 如何去除矩阵中的重复元素

[复制链接]
发表于 2008-4-21 15:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我有一组数据,其中有很多重复的数据,用什么命令去除这些重复的数据呢?数据如下:
  297.0000  141.0000
  298.0000  141.1667
  298.0000  141.1667
  299.0000  141.8333
  299.0000  141.8333
  300.0000  142.0000
  300.0000  142.0000
  301.0000  142.0000
  301.0000  142.0000
  302.0000  141.8333
  302.0000  141.8333
  303.0000  141.1667
  303.0000  141.1667
  304.0000  141.0000
  304.0000  141.0000
  305.0000  141.0000
  305.0000  141.0000
  306.0000  141.0000
  306.0000  141.0000
  307.0000  141.0000
  307.0000  141.0000
  308.0000  141.0000
  308.0000  141.0000
  309.0000  141.0000
  309.0000  141.0000
  310.0000  141.1667
  310.0000  141.1667
  311.0000  142.0000
  311.0000  142.0000
  312.0000  143.0000
  312.0000  143.0000
  312.8333  144.0000
  312.8333  144.0000
  313.1667  145.0000
  313.1667  145.0000
  314.0000  145.8333

[ 本帖最后由 eight 于 2008-4-21 19:57 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-4-21 16:34 | 显示全部楼层
help sort
help diff
help find
发表于 2008-4-21 17:20 | 显示全部楼层
那我这个问题是否也这个类似,也可以用同类的方法么?
http://forum.vibunion.com/forum/thread-62565-1-1.html
发表于 2008-4-21 17:48 | 显示全部楼层
doc unique
发表于 2008-4-21 17:52 | 显示全部楼层
原帖由 nancy2008521 于 2008-4-21 15:57 发表
我有一组数据,其中有很多重复的数据,用什么命令去除这些重复的数据呢?数据如下:
  297.0000  141.0000
  298.0000  141.1667
  298.0000  141.1667
  299.0000  141.8333
  299.0000  141.8333
  300.0000 ...


呵呵,自己编了一段程序,也不知能不能让你满意,如果高手有更好的方法,请不吝赐教:
fid=fopen('data.txt');
[A,count]=fscanf(fid,'%f',inf);
fclose(fid);
B=A';
D=[];
for i=1:count/2
    C(i,1)=B(2*i-1);
    C(i,2)=B(2*i);
end
for i=1:count/2
    t=C(i,1);
    for j=i+1:count/2
    if C(j,1)==t
        C(j,1:2)=0;
    end
    end
end
D=find(C(:,1)~=0);
C(D,:)

data.txt

790 Bytes, 下载次数: 7

评分

1

查看全部评分

发表于 2008-4-21 17:53 | 显示全部楼层
是的,sort() 排列; diff() 做两次差分; find() 找出相同数据的点; 再删除重复数据或者其它操作。

评分

1

查看全部评分

发表于 2008-4-21 18:24 | 显示全部楼层
4楼的unique是最好的方式,直接用

AA = 该数组;
aaa=unique(AA,'rows');

就已经完成了整个过程(认为一行两个元素都一样才是重复的元素),简单快捷。

评分

1

查看全部评分

发表于 2008-4-21 19:57 | 显示全部楼层
这个问题已经讨论过多次,请楼主先搜索一下,unique 是最好的方法,不过精度方面不能要求太大
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 13:21 , Processed in 0.086506 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表