我是 Julia 的新手,我有一个包含给定矩阵的数据集。我只需要提取每个中间字符串的第一个数字。由于它们保存为一个字符串,我不知道如何保存。
我尝试将字符串转换为这样的浮点数,然后获取数字,但它对我来说并不起作用。
number = parse.(Float64, split(str, ","))
我假设您的数据来自这样的文件:
dat="""123.12;[123.3, 15.4];5
223.12;[523.3, 85.4];6
323.12;[623.3, 95.4];7
423.12;[723.3, 115.4];8"""
您阅读了此文件
using DelimitedFiles
julia> mx = readdlm(IOBuffer(dat),';')
4×3 Matrix{Any}:
123.12 "[123.3, 15.4]" 5
223.12 "[523.3, 85.4]" 6
323.12 "[623.3, 95.4]" 7
423.12 "[723.3, 115.4]" 8
由于第二列中的数据是 JSON 格式,您可以解析该列
using JSON3
:
julia> JSON3.read.(mx[:,2], Vector{Float64})
4-element Vector{Vector{Float64}}:
[123.3, 15.4]
[523.3, 85.4]
[623.3, 95.4]
[723.3, 115.4]
如果你想将其组合成一个矩阵,你可以这样做:
julia> hcat(Float64.(mx[:,1]),vcat(transpose.(JSON3.read.(mx[:,2], Vector{Float64}))...),Float64.(mx[:, 3]))
4×4 Matrix{Float64}:
123.12 123.3 15.4 5.0
223.12 523.3 85.4 6.0
323.12 623.3 95.4 7.0
423.12 723.3 115.4 8.0