Append 朱莉娅推!或附加!将浮点值转换为整数数组
我在Julia中有一个整数向量,希望向其推送一个浮点值,或向其附加一个浮点值集合,但当我尝试这样做时,Julia会抛出一个错误:Append 朱莉娅推!或附加!将浮点值转换为整数数组,append,julia,Append,Julia,我在Julia中有一个整数向量,希望向其推送一个浮点值,或向其附加一个浮点值集合,但当我尝试这样做时,Julia会抛出一个错误: julia> v = [1,2,3] 3-element Array{Int64,1}: 1 2 3 julia> push!(v, 4.5) ERROR: InexactError() in push! at array.jl:432 julia> append!(v, [4.5, 5.2, 3.1]) ERROR: InexactEr
julia> v = [1,2,3]
3-element Array{Int64,1}:
1
2
3
julia> push!(v, 4.5)
ERROR: InexactError()
in push! at array.jl:432
julia> append!(v, [4.5, 5.2, 3.1])
ERROR: InexactError()
in copy! at abstractarray.jl:344
in append! at array.jl:447
如何将这些值添加到此数组中?我认为您无法使用
append代码>,因为在内部,追加代码>
使用不安全的拷贝代码>和,如文档所述:
此函数上的不安全前缀表示未对指针dest和src执行任何验证以确保
它们是有效的。不正确的使用可能会损坏或损坏您的程序,方式与C相同
在下面的示例中可以看到这种行为,其中,即使
错误消息不精确错误
,向量的内容无效
julia> a=[1,2,3]
3-element Array{Int64,1}:
1
2
3
julia> append!(a,[3.14, 6.66, 1.61])
ERROR: InexactError()
in copy! at abstractarray.jl:344
in append! at array.jl:447
julia> a
6-element Array{Int64,1}:
1
2
3
9223372036854775807
18
-1
最安全的方法是使用vcat
进行连接,如下所示:
julia> a=[1,2,3]
3-element Array{Int64,1}:
1
2
3
julia> a=vcat(a, [3.14, 6.66, 1.61])
6-element Array{Float64,1}:
1.0
2.0
3.0
3.14
6.66
1.61
或:
请注意,在连接之后,数组将升级为新类型
(Array{Float64,1}
和Array{Any,1}
)
更多信息:
您是想将小数点成对地添加到整数中,还是在整数向量的末尾添加小数点?我编辑这个问题的前提是@Gomiero对这个问题的解释是正确的。如果没有,请澄清。
julia> a=[1,2,3]
3-element Array{Int64,1}:
1
2
3
julia> a=[a; [dec(3), "6.66", "test"]]
6-element Array{Any,1}:
1
2
3
"3"
"6.66"
"test"