如何在 Julia 中通过转换读取文本文件?
How can I read text file with converting in Julia?
我尝试在 julia 中读取一个文本文件,但在读取时我无法给出任何类型,它会出错;
data = readdlm("data.txt",'\t', Float64)
at row 1, column 1 : ErrorException("file entry \" 0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 24.00\" cannot be converted to Float64")
如果我不使用Float64,数据类型是Array{Any,2}。
这个结果 returns 但我在数据中有 14 个不同的列。
" 0.27957 0.00 9.690 0 0.5850 5.9260 42.60 2.3817 6 391.0 19.20 396.90 13.59 24.50"
" 0.17899 0.00 9.690 0 0.5850 5.6700 28.80 2.7986 6 391.0 19.20 393.29 17.60 23.10"
" 0.28960 0.00 9.690 0 0.5850 5.3900 72.90 2.7986 6 391.0 19.20 396.90 21.14 19.70"
" 0.26838 0.00 9.690 0 0.5850 5.7940 70.60 2.8927 6 391.0 19.20 396.90 14.10 18.30"
" 0.23912 0.00 9.690 0 0.5850 6.0190 65.30 2.4091 6 391.0 19.20 396.90 12.92 21.20"
我建议使用 CSV
库来解析分隔文件。它具有处理重复分隔符等功能,这些功能可能会处理您的输入文件。
julia> using Pkg
julia> Pkg.add("CSV")
julia> import CSV
julia> Array(CSV.read("data.txt"; delim=' ', ignorerepeated=true, type=Float64))
4×14 Array{Float64,2}:
0.17899 0.0 9.69 0.0 0.585 5.67 28.8 2.7986 6.0 391.0 19.2 393.29 17.6 23.1
0.2896 0.0 9.69 0.0 0.585 5.39 72.9 2.7986 6.0 391.0 19.2 396.9 21.14 19.7
0.26838 0.0 9.69 0.0 0.585 5.794 70.6 2.8927 6.0 391.0 19.2 396.9 14.1 18.3
0.23912 0.0 9.69 0.0 0.585 6.019 65.3 2.4091 6.0 391.0 19.2 396.9 12.92 21.2
我尝试在 julia 中读取一个文本文件,但在读取时我无法给出任何类型,它会出错;
data = readdlm("data.txt",'\t', Float64)
at row 1, column 1 : ErrorException("file entry \" 0.00632 18.00 2.310 0 0.5380 6.5750 65.20 4.0900 1 296.0 15.30 396.90 4.98 24.00\" cannot be converted to Float64")
如果我不使用Float64,数据类型是Array{Any,2}。 这个结果 returns 但我在数据中有 14 个不同的列。
" 0.27957 0.00 9.690 0 0.5850 5.9260 42.60 2.3817 6 391.0 19.20 396.90 13.59 24.50"
" 0.17899 0.00 9.690 0 0.5850 5.6700 28.80 2.7986 6 391.0 19.20 393.29 17.60 23.10"
" 0.28960 0.00 9.690 0 0.5850 5.3900 72.90 2.7986 6 391.0 19.20 396.90 21.14 19.70"
" 0.26838 0.00 9.690 0 0.5850 5.7940 70.60 2.8927 6 391.0 19.20 396.90 14.10 18.30"
" 0.23912 0.00 9.690 0 0.5850 6.0190 65.30 2.4091 6 391.0 19.20 396.90 12.92 21.20"
我建议使用 CSV
库来解析分隔文件。它具有处理重复分隔符等功能,这些功能可能会处理您的输入文件。
julia> using Pkg
julia> Pkg.add("CSV")
julia> import CSV
julia> Array(CSV.read("data.txt"; delim=' ', ignorerepeated=true, type=Float64))
4×14 Array{Float64,2}:
0.17899 0.0 9.69 0.0 0.585 5.67 28.8 2.7986 6.0 391.0 19.2 393.29 17.6 23.1
0.2896 0.0 9.69 0.0 0.585 5.39 72.9 2.7986 6.0 391.0 19.2 396.9 21.14 19.7
0.26838 0.0 9.69 0.0 0.585 5.794 70.6 2.8927 6.0 391.0 19.2 396.9 14.1 18.3
0.23912 0.0 9.69 0.0 0.585 6.019 65.3 2.4091 6.0 391.0 19.2 396.9 12.92 21.2