julia - 在 julia 中将 Expr 转换为数组
问题描述
我有一个Expr
:([4.01673077 7.62137432 8.74459436 10.14775067 12.57379884 14.39781963; 17.00925227 19.2273262])
我希望将其转换为 Vector{Float64},但eval
直接调用它似乎不起作用。
我怎样才能做到这一点?
解决方案
您可以从中提取数据Expr
(更快、更安全),也可以只提取数据(更eval
慢、不安全、更简单的代码)。
julia> a = :([12.57379884 14.39781963; 17.00925227 19.2273262])
:([12.57379884 14.39781963; 17.00925227 19.2273262])
julia> [Float64.(vals) for vals in getfield.(a.args, :args)]
2-element Vector{Vector{Float64}}:
[12.57379884, 14.39781963]
[17.00925227, 19.2273262]
julia> eval(a)
2×2 Matrix{Float64}:
12.5738 14.3978
17.0093 19.2273
您的矩阵格式错误,因此只有第一个解决方案可以使用它。
推荐阅读
- regex - 使用捕获组匹配重复 [01] 的正则表达式
- node.js - 如何从快递发送默认的nextjs 404 not found错误页面?
- python - 如何自定义 fairseq 模型输入?
- tensorflow - 我们如何将 keras 模型 .h5 文件转换为 tensorflow 保存的模型 (.pb)
- javascript - 如何解决“尝试从 json 文件中获取 url 时我未定义”?
- visual-studio - MSBuild 以最新的 TargetPlatformVersion 为目标
- c# - JSON反序列化不适用于列表对象
- javascript - 将画布元素分配给 img.src
- kerberos - 传递 JVM 参数
- sql - SQL 需要帮助修复/修改/完成代码