Julia 将 SymEngine 表达式写入文件
Julia write SymEngine expression to file
当我尝试将代码中的表达式写入文件时,收到错误消息:
MethodError: no method matching write(::IOStream, ::SymEngine.Basic)
我使用的代码被认为是将表达式写入文件,然后在其他程序中从那里获取它。这是我的代码:
using SymEngine
function Legendre(n)
@vars x
a = 1
Pn = (x^2-1)^n
for k = (1:n)
Pn = diff(Pn,x)
a = a*2*k
end
Pn = Pn/a
end
function Asos_Legendre(n,s)
@vars x
Pn=Legendre(n)
for l = (1:s)
Pn = diff(Pn,x)
end
a = (1-x^2)^(s/2)*(-1)^(s)
Pn = Pn*a
end
function Asos_Legendre_diff(n,s)
@vars x
Pn=Asos_Legendre(n,s)
Pn1 = diff(Pn,x)
d = (1-x^2)^(s/2)*(-1)^s
b = x*(-1)^(s+1)*s*(1-x^2)^(s/2-1)
a = Pn1*d + Pn*b
open("C:/stj/Julia/test3.txt", "w") do f
write(f,)
end
end
也许有一种方法可以将 SymEngine.Basic
对象转换为 String
并反转?我可以将它们写成 String
然后再将它们转换回 SymEngine
。
执行 ex = convert(Expr,b)
将 SymEngine.Basic
更改为 Expr
。从那里,您可以 convert(String,ex)
,或者如果您尝试执行诸如将其写入文件之类的操作,那么它会自动转换为字符串。
当我尝试将代码中的表达式写入文件时,收到错误消息:
MethodError: no method matching write(::IOStream, ::SymEngine.Basic)
我使用的代码被认为是将表达式写入文件,然后在其他程序中从那里获取它。这是我的代码:
using SymEngine
function Legendre(n)
@vars x
a = 1
Pn = (x^2-1)^n
for k = (1:n)
Pn = diff(Pn,x)
a = a*2*k
end
Pn = Pn/a
end
function Asos_Legendre(n,s)
@vars x
Pn=Legendre(n)
for l = (1:s)
Pn = diff(Pn,x)
end
a = (1-x^2)^(s/2)*(-1)^(s)
Pn = Pn*a
end
function Asos_Legendre_diff(n,s)
@vars x
Pn=Asos_Legendre(n,s)
Pn1 = diff(Pn,x)
d = (1-x^2)^(s/2)*(-1)^s
b = x*(-1)^(s+1)*s*(1-x^2)^(s/2-1)
a = Pn1*d + Pn*b
open("C:/stj/Julia/test3.txt", "w") do f
write(f,)
end
end
也许有一种方法可以将 SymEngine.Basic
对象转换为 String
并反转?我可以将它们写成 String
然后再将它们转换回 SymEngine
。
执行 ex = convert(Expr,b)
将 SymEngine.Basic
更改为 Expr
。从那里,您可以 convert(String,ex)
,或者如果您尝试执行诸如将其写入文件之类的操作,那么它会自动转换为字符串。