Julia中如何将Array{Num,1}转换为Array{Float64,1}解决绘图报错
问题解决方法
报错原因
Symbolics包中符号运算返回的Num是对实际数值的封装类型,无法直接通过原生float()/convert()函数转换为浮点数,需要先提取Num类型中包裹的原生数值。
另外你的代码存在一处语法笔误:Julia的条件判断关键字是小写if,你代码里写的大写If会触发语法错误,需要先修正。
具体解决方案
方案1:修改函数返回值,直接输出Float64数组
修改函数else分支的返回语句,调用Symbolics.value()提取替换后的原生数值:
else return [Symbolics.value(substitute(i, Dict(m0 => p, m1 => 1 - p))) for i in next_level] end
修改后调用函数得到的y就是Array{Float64,1}类型,可直接传入plot函数绘图。
方案2:对已有的Array{Num,1}类型数组做批量转换
如果不想修改原函数,可对生成的y做转换:
y_float = map(Symbolics.value, y) plot(x, y_float)
内容的提问来源于stack exchange,提问作者utello10
相关产品推荐
相关产品推荐

