gpt4 book ai didi

julia - 使用广播将非无理值分配给无理数组的问题。=

转载 作者:行者123 更新时间:2023-12-01 04:37:36 24 4
gpt4 key购买 nike

以(无理)数组为例

a = fill(pi, 10)

例如,当尝试为一个元素分配不同的值时

a[1] .= 0.0

出现以下错误:

ERROR: MethodError: no method matching copyto!(::Irrational{:π}, ::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{0},Tuple{},typeof(identity),Tuple{Int64}})

最佳答案

原因是 a 的元素类型当你像这样构造它时是特殊数字类型 Irrational{:π} 从输出中可以看出:

julia> a = fill(pi, 2)
2-element Array{Irrational{:π},1}:
π
π

当您尝试将另一种数字类型放入此容器中时(例如,在您的示例中,值为 0.0Float64)就像试图将正方形放入圆孔中一样 - - 它们不合适。

解决方案是构建具有所需元素类型的数组。对于“常规”计算,您可能需要 Float64,因此您可以先将 pi 转换为 float :

julia> a = fill(float(pi), 2)
2-element Array{Float64,1}:
3.141592653589793
3.141592653589793

关于julia - 使用广播将非无理值分配给无理数组的问题。=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60115240/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com