feargt 发表于 2022-7-6 06:32:19

实数列表的字符串

你好
 
我有一个从excel中获得的字符串(0.0 1.2 1.2 1.2),
 
我可以将其转换为列表,使其为(“0.0”“1.2”“1.2”“1.2”)
 
如何将列表中的每个字符串转换为实数?
我认为我可以将“foreach”函数与atof结合使用,但我似乎无法使其工作。
 
有什么想法吗?
 
谢谢

Tharwat 发表于 2022-7-6 06:41:34

如果您希望使用foreach函数,下面是一个示例。
 

(foreach x '("0.0" "1.2" "1.2" "1.2")
(setq l (cons (read x) l))
)
(reverse l)

MSasu 发表于 2022-7-6 06:48:29

请不要错过你列出的是一个列表,而不是一个字符串。字符串如下所示:
"0.0 1.2 1.2 1.2"
你需要用空格分割,然后用ATOF或DISTOF转换成实数。

feargt 发表于 2022-7-6 06:57:13

你好
 
这给了我一个错误。见以下代码。
 
 


(setq dist_list (getcell "I10"))


(setq dist_list (sinc:String->List dist_list " "))


(foreach x dist_list
(setq dist_list1 (cons (read x) dist_list))
)
(reverse dist_list1)




(print dist_list1)


 
(1.2“0.0”“1.2”“1.2”“1.2”)FEHLERHATER参数类型:数字:“0.0”

Tharwat 发表于 2022-7-6 07:01:51

也许,看看
 

feargt 发表于 2022-7-6 07:09:43

我在pbejse的另一个论坛上用过这个!
 
(mapcar的读取距离列表)

Tharwat 发表于 2022-7-6 07:18:25

 
大多数人才用户在各个论坛都有账户,因此如果你在论坛上发布你的问题,你会看到大多数用户都有相同的答案。

Lee Mac 发表于 2022-7-6 07:22:12

 
您可以跳过几个步骤:
(read (strcat "(" (getcell "I10") ")"))

pBe 发表于 2022-7-6 07:32:17

 
OP和我在另一个论坛上从来没有走那么远,
 
我想这取决于feargt使用的getcell或sinc:String->List子函数。从“错误”中可以看出
 
 
在这个过程中的某个地方,一个元素最终成为了一个实数。
 
 
是的,李的建议是跳过单元格值到字符串的转换,然后再转换回来。

feargt 发表于 2022-7-6 07:38:30

 
以上内容实际上是李·麦克最初发布的
 
谢谢大家的回复。今天晚些时候我会试试这个。
页: [1]
查看完整版本: 实数列表的字符串