在Julia中使用SymPy如何将字符串表达式列表lambdify为可调用函数?
实现方案
首先确保你已经在Julia环境中安装了SymPy库,之后按照如下代码实现即可:
using SymPy # 定义输入的表达式列表与对应符号变量 feature_names = ["1", "x", "y", "z", "x^2", "x y", "x z", "y^2", "y z", "z^2"] @vars x y z # 批量将字符串转换为SymPy表达式,先把表达式中的空格替换为乘号* expr_list = [sympy.parse_expr(replace(expr_str, " " => "*")) for expr_str in feature_names] # 编译为可批量求值的调用函数 f = lambdify(expr_list, (x, y, z))
效果验证
调用后的输出和你要求的结果完全匹配:
julia> f(1, 2, 3) 10-element Vector{Float64}: 1.0 1.0 2.0 3.0 1.0 2.0 3.0 4.0 6.0 9.0
如果需要返回整数类型结果,对输出做类型转换即可:Int.(f(1,2,3))
内容的提问来源于stack exchange,提问作者Felix
相关产品推荐
相关产品推荐

