![](/img/trans.png)
[英]Julia : How to convert vector of type string to type numeric (Float64)
[英]How do you convert the string “Array{Float64,1}[1,2,3]” to an actual array in Julia?
我基本上想采用一个字符串,例如“ Array {Float64,1} [1,2,3]”,并将其转换为实际的数组:[1,2,3]
我已经尝试过convert函数,但是julia不喜欢将事物转换为数组。
convert(Array,x)
julia拒绝了这一说法,称它无法将字符串转换为数组。
ERROR: MethodError: Cannot `convert` an object of type String to an object of type Array
Closest candidates are:
convert(::Type{Array}, ::DataStructures.CircularBuffer{T}) where T at /Users/benjaminkhoury/.julia/packages/DataStructures/5F6tJ/src/circular_buffer.jl:172
convert(::Type{T<:Array}, ::AbstractArray) where T<:Array at array.jl:474
convert(::Type{T<:AbstractArray}, ::T<:AbstractArray) where T<:AbstractArray at abstractarray.jl:14
...
Stacktrace:
[1] top-level scope at none:0
您要尝试的是解析一个字符串。 您可以使用Meta.parse
函数将字符串解析为表达式。 然后,您可以使用eval
评估表达式:
julia> ex = Meta.parse("[1., 2, 3]")
:([1.0, 2, 3])
julia> eval(ex)
3-element Array{Float64,1}:
1.0
2.0
3.0
请注意,由于字符串中的表达式会引发错误,因此我修改了字符串:
julia> Array{Float64,1}[1, 2, 3]
ERROR: MethodError: Cannot `convert` an object of type Int64 to an object of type Array{Float64,1}
要引用文档(请参见此处) ,
可以使用语法T [A,B,C,...]构造具有特定元素类型的数组。 这将构造一个元素类型为T的一维数组,并初始化为包含元素A,B,C等。
因此Array{Float64,1}[[1, 2], [3, 4], [5, 6]]
有效,但Array{Float64,1}[1, 2, 3]
无效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.