首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Julia中导出/导入数组?

如何在Julia中导出/导入数组?
EN

Stack Overflow用户
提问于 2021-09-01 20:35:12
回答 1查看 346关注 0票数 1

我想从我的笔记本电脑(Julia1.3.1)移动一个数组到我的台式电脑(Julia1.6.2)。

我在Julia 1.3.1中创建了一个数组,如下所示。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
using LinearAlgebra

H = ... #give a matrix H
eigen,vector = eigen(H) 

然后,我想把“向量”移到Julia1.6.2。

你怎么做到的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-01 23:43:55

最简单的方法是使用DelimitedFiles

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
julia> v = [1.0,2.0,3.0]

julia> using DelimitedFiles
                           
julia> writedlm("f.txt", v)
                           

julia> readdlm("f.txt")
3×1 Matrix{Float64}:
 1.0
 2.0
 3.0

julia> vec(readdlm("f.txt"))
3-element Vector{Float64}:
 1.0
 2.0
 3.0

注意,DelmitedFiles与矩阵一起工作,所以最后一个例子显示了如果您想存储一个向量,应该做什么。

编辑Bogumil的评论

当您有一个Matrix of Complex数字时,您需要提供readdlm的输出类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
julia> v = Complex.(rand(2,3), rand(2,3))
2×3 Matrix{ComplexF64}:
 0.282157+0.540556im  0.757765+0.103518im  0.979935+0.212347im
 0.557499+0.934859im  0.604032+0.338489im  0.431962+0.945946im

julia> writedlm("f.txt", v)

julia> readdlm("f.txt",'\t',Complex{Float64})
2×3 Matrix{ComplexF64}:
 0.282157+0.540556im  0.757765+0.103518im  0.979935+0.212347im
 0.557499+0.934859im  0.604032+0.338489im  0.431962+0.945946im

julia> readdlm("f.txt",'\t',Complex{Float64}) == v
true

另一种方法是使用二进制格式。对于长期中间版本序列化,BSON (二进制json)可能是一个很好的选择:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
julia> using BSON

julia> BSON.bson("v.bson", v = v)

julia> v2 = BSON.load("v.bson")[:v]
2×3 Matrix{ComplexF64}:
 0.282157+0.540556im  0.757765+0.103518im  0.979935+0.212347im
 0.557499+0.934859im  0.604032+0.338489im  0.431962+0.945946im
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69024213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文