You need to enable JavaScript to run this app. Julia中如何将Array{Num,1}转换为Array{Float64,1}解决绘图报错
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 05:54:07