繁体   English   中英

如何将字符串“ Array {Float64,1} [1,2,3]”转换为Julia中的实际数组?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM