gpt4 book ai didi

julia - 如何从 Julia 中的文本文件中读取多项式?

转载 作者:行者123 更新时间:2023-12-01 13:11:45 25 4
gpt4 key购买 nike

我使用 TypedPolynomials 包,我想从文本文件中读取多项式。我该怎么做?

如果我用

julia> poly = read("test.txt", String)

这会给我一个字符串。如何将其转换为多项式?

最佳答案

这里有一些想法。

你可以做的是 Meta.parseeval 你读入的 String。注意虽然这不是一个安全的操作,所以您应该确定您读入的内容实际上可以安全运行(否则有人可能会删除您的磁盘)。这是一个例子:

julia> @polyvar x
x

julia> p = eval(Meta.parse("3x+4x^2"))
4x² + 3x

julia> dump(p)
Polynomial{Int64,Term{Int64,Monomial{(x,),1}},Array{Term{Int64,Monomial{(x,),1}},1}}
terms: Array{Term{Int64,Monomial{(x,),1}}}((2,))
1: Term{Int64,Monomial{(x,),1}}
coefficient: Int64 4
monomial: Monomial{(x,),1}
exponents: Tuple{Int64}
1: Int64 2
2: Term{Int64,Monomial{(x,),1}}
coefficient: Int64 3
monomial: Monomial{(x,),1}
exponents: Tuple{Int64}
1: Int64 1

另一种选择是包含文件:

julia> @polyvar x
x

julia> p = include("test.txt")
4x² + 3x

julia> dump(p)
Polynomial{Int64,Term{Int64,Monomial{(x,),1}},Array{Term{Int64,Monomial{(x,),1}},1}}
terms: Array{Term{Int64,Monomial{(x,),1}}}((2,))
1: Term{Int64,Monomial{(x,),1}}
coefficient: Int64 4
monomial: Monomial{(x,),1}
exponents: Tuple{Int64}
1: Int64 2
2: Term{Int64,Monomial{(x,),1}}
coefficient: Int64 3
monomial: Monomial{(x,),1}
exponents: Tuple{Int64}
1: Int64 1

同样的风险与此方法相关(文件可以包含任意 Julia 代码)。

如果您想安全起见,您可能应该在 Meta.parse 步骤之后检查生成的表达式是否实际上只是一个多项式。

关于julia - 如何从 Julia 中的文本文件中读取多项式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59543961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com