我想从我的笔记本电脑(Julia1.3.1)移动一个数组到我的台式电脑(Julia1.6.2)。
我在Julia 1.3.1中创建了一个数组,如下所示。
using LinearAlgebra
H = ... #give a matrix H
eigen,vector = eigen(H)
然后,我想把“向量”移到Julia1.6.2。
你怎么做到的?
发布于 2021-09-01 23:43:55
最简单的方法是使用DelimitedFiles
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
的输出类型
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)可能是一个很好的选择:
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
https://stackoverflow.com/questions/69024213
复制相似问题