明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 560|回复: 4

[提问] 我有个重复坐标的点集合 怎么去除重复项

[复制链接]
发表于 2018-10-10 16:27 | 显示全部楼层 |阅读模式
'((616787.0 4.90479e+006) (616897.0 4.9048e+006) (616902.0 4.90471e+006) (616795.0 4.90471e+006) (616787.0 4.90479e+006) (616897.0 4.9048e+006))这里有个6个坐标列表 其中有两个是重复的 怎么删除重复项 并且位置不变



发表于 2018-10-10 16:52 | 显示全部楼层
本帖最后由 dingtiedt 于 2018-10-10 17:17 编辑

删除表中重复数据,保留图元名,并统计表中相同数量
http://bbs.mjtd.com/forum.php?mo ... 370&fromuid=7309019
(出处: 明经CAD社区)

(vl-remove-if '(lambda (x) (equal (car x) (caar lst))) lst)


 楼主| 发表于 2018-10-10 17:34 来自手机 | 显示全部楼层
谢谢,以成功解决
发表于 2018-10-10 18:59 | 显示全部楼层
  1. ;Lee Mac
  2. (defun LM:Unique ( l )
  3.     (if l (cons (car l) (LM:Unique (vl-remove (car l) (cdr l)))))
  4. )


嗨!请留意!
(setq lst
'((616787.0 4.90479e+006) (616897.0 4.9048e+006) (616902.0 4.90471e+006) (616795.0 4.90471e+006) (616787.0 4.90479e+006) (616897.0 4.9048e+006))
)

;LM 递归返回
‘((616787.0 4.90479e+006) (616897.0 4.9048e+006) (616902.0 4.90471e+006) (616795.0 4.90471e+006))
787 897 902 795, X值没重复

; 楼上VL函数返回
((616897.0 4.9048e+006) (616902.0 4.90471e+006) (616795.0 4.90471e+006) (616897.0 4.9048e+006))
897 902 795 897, X值有重复


(equal
(LM:Unique lst)
(vl-remove-if '(lambda (x) (equal (car x) (caar lst))) lst)
1e-5
)

nil
;结果不一致
 楼主| 发表于 2018-10-12 10:37 | 显示全部楼层
lisperado 发表于 2018-10-10 18:59
嗨!请留意!
(setq lst
'((616787.0 4.90479e+006) (616897.0 4.9048e+006) (616902.0 4.90471e+006 ...

谢谢你  虽然看不懂 但是两个我都试了下  还是你的我用着对  
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-3-28 16:50 , Processed in 0.223799 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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