是否可以在 Julia 中将 Array{Num,1} 转换为 Array{Float64,1}?

如何解决是否可以在 Julia 中将 Array{Num,1} 转换为 Array{Float64,1}?

我有以下在 Julia 中使用符号的函数。一切正常,直到绘图的那一刻

using distributions
using Plots
using Symbolics
using SymbolicUtils

function BinomialMeasure(iter::Int64,p::Float64,current_level = nothing)

@variables m0 m1

if current_level == nothing
    current_level = [1]
end
next_level = []
for item in current_level
    append!(next_level,m0*item)
    append!(next_level,m1*item)
end

If iter != 0
    current_level = next_level
    return BinomialMeasure(iter - 1,p,current_level)
else
    return [substitute(i,Dict([m0 => p,m1 => 1 - p])) for i in next_level]
end
end

y = BinomialMeasure(10,0.4)
x = [( i + 1 ) / length(y) for i = 1:length(y) ]
append!(x,0)
append!(y,0)
plot(x,y) 

然后它返回以下内容

MethodError: no method matching AbstractFloat(::Num)
Closest candidates are:
AbstractFloat(::Real,!Matched::RoundingMode) where T<:AbstractFloat at rounding.jl:200
AbstractFloat(::T) where T<:Number at boot.jl:716
AbstractFloat(!Matched::Bool) at float.jl:258 

y 是一个数组{Num,1},x 是一个数组{Float64,1}。

我尝试了 map(float,y)、convert(float,y) 和 float(y),但我认为不可能将类型 Num 转换为 Float64,或者至少我不知道该怎么做.

解决方法

您可以在不使用 valstring 的情况下访问字段 parse

y_val = [i.val for i in y]

这当然比解析字符串有更好的性能

,

看看其他答案

通过简要阅读有关 Symbolics 的论坛帖子,我的理解是,您并不是真的“应该”从符号中获取实际值。作为一个hacky解决方法,你可以做

{{1}}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?