如何在 Julia 中仅获取矩阵内字符串中的第一个数字?

问题描述 投票:0回答:1

我是 Julia 的新手,我有一个包含给定矩阵的数据集。我只需要提取每个中间字符串的第一个数字。由于它们保存为一个字符串,我不知道如何保存。

enter image description here

我尝试将字符串转换为这样的浮点数,然后获取数字,但它对我来说并不起作用。


number = parse.(Float64, split(str, ","))

string matrix type-conversion julia
1个回答
0
投票

我假设您的数据来自这样的文件:

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
© www.soinside.com 2019 - 2024. All rights reserved.