f4800 发表于 2022-3-13 22:41:30

如何从表中 查找第一个数据最接近于0的那对数据 然后替换

本帖最后由 f4800 于 2022-3-13 23:08 编辑

如何从表中查找第一个数据最接近于0的那对数据   然后替换
比如
示例1
(
(-20.0 332.96)
(-19.2385 333.12)
(-17.8847 332.14)
(-11.091 332.24)
(-4.16108 332.2)
(-2.79833 333.81)
(0.0444494 333.79)       这一对数据的第一个数据最接近 0 ,然后修改替换为0   333.79
(1.47892 333.76)
(2.8191 333.9)
(5.13449 331.96)
(9.74579 331.8)
(12.0496 333.53)
(14.9349 333.68)
(20.0 333.85)
)



示例2
(
(-20.0 332.96 326)
(-19.2385 333.12 326)
(-17.8847 332.14 326)
(-11.091 332.24 326)
(-4.16108 332.2 326)
(-2.79833 333.81 326)
(-0.0564 333.79 326)       这一对数据的第一个数据最接近 0 ,然后修改替换为0   333.79326
(1.47892 333.76 326)
(2.8191 333.9 326)
(5.13449 331.96 326)
(9.74579 331.8 326)
(12.0496 333.53 326)
(14.9349 333.68 326)
(20.0 333.85 326)
)

请问这里如何实现?多谢了

多谢





紫苏炒黄瓜 发表于 2022-3-13 23:09:31

(setq jin0
        (apply 'min
                (mapcar
                        (function
                                (lambda (x)
                                        (abs (car x))
                                )
                        )
                        LST
                )
        )
)
(or
        (setq lst_jin0 (assoc (* jin0 -1) lst))
        (setq lst_jin0 (assoc jin0 lst))
)
(subst (list 0.0 (cadr lst_jin0)) lst_jin0 lst)
试试

f4800 发表于 2022-3-13 23:24:55

紫苏炒黄瓜 发表于 2022-3-13 23:09
试试

可行大师。。。:handshake
页: [1]
查看完整版本: 如何从表中 查找第一个数据最接近于0的那对数据 然后替换