我想导入一个CSV文件(file.csv)作为一个矩阵在朱莉娅,以绘制它作为一个热图使用GR。我的CSV文件包含255行和255个条目。下面是CSV文件中的一些内容,以说明行的格式:
file.csv
-1.838713563526794E-8;-1.863045549663876E-8;-2.334704481052452E-8 ...
-1.7375447279939282E-8;-1.9194929690414267E-8;-2.0258124812468942E-8; ...
⋮
-1.1706980663321613E-8;-1.6244768693064608E-8;-5.443335580296977E-9; ...注:省略号(.)不是CSV文件的一部分,而是表示已省略了所有内容。
我尝试使用下面的m = CSV.read("./file.csv")行将文件导入为一个矩阵,但是这会导致255x1向量,而不是255×255个矩阵。有人知道将CSV文件作为矩阵导入Julia中的有效方法吗?
发布于 2019-04-18 08:25:51
m = CSV.read("./file.csv")返回一个DataFrame。
如果CSV.jl正确读取文件,使m的所有列都是不包含missings的Float64类型,则可以将m转换为Matrix{Float64}(m)的Float64矩阵,或者用一行获得矩阵:
m = Matrix{Float64}(CSV.read("./file.csv", header=0, delim=';'))
# or with piping syntax
m = CSV.read("./file.csv", header=0, delim=';') |> Matrix{Float64}不过,通常情况下,readdlm应该足够并且是第一个解决方案,可以使用像您这样简单的CSV文件。
发布于 2019-04-17 22:36:32
您可以使用
using DelimitedFiles
m = readdlm("./file.csv", ';', Float64)(如果需要Float64,可以省略指定类型的最后一个参数)
发布于 2022-05-30 11:00:33
2022答复
不确定是否对CSV.jl进行了更改,但是,如果我执行CSV.read("file.csv"),它将出错
provide a valid sink argument, like 'using DataFrames; CSV.read(source, DataFrame)'但是,您可以使用以下事实:它需要任何Tables.jl兼容类型:
using CSV, Tables
M = CSV.read("file.csv", Tables.matrix, header=0)https://stackoverflow.com/questions/55736755
复制相似问题