gpt4 book ai didi

makefile - Julia : How can l write and store files in a loop ?

转载 作者:行者123 更新时间:2023-12-03 06:41:47 33 4
gpt4 key购买 nike

我有一个巨大的数据集,我将其分为 k 个迷你数据集,其中 k=100。知道我想将这些迷你数据集存储在不同的文件中。为了存储我的大量数据集,我使用了以下说明:

using JLD, HDF5
X=rand(100000)
file = jldopen("path to my file/mydata.jld", "w") # the extension of file is jld so you should add packages JLD and HDF5, Pkg.add("JLD"), Pkg.add("HDF5"),
write(file, "X", X) # alternatively, say "@write file A"
close(file)

知道我将我的数据集分为 k 个子数据集,其中 k=100

function get_mini_batch(X)

mini_batches = round(Int, ceil(X / 100))

for i=1:mini_batches
mini_batch = X[((i-1)*100 + 1):min(i*100, end)]
file= jldopen("/path to my file/mydata.jld", "w")
write(file, "mini_batch", mini_batch) # alternatively, say "@write file mini_batch"
lose(file)
end
end

但此函数允许将不同的子数据集存储在一个文件中,该文件在每次迭代时都会被覆盖。

file= jldopen("/path to my file/mydata1.jld", "w")  # at each iteration l want to get files : mydata1, mydata2 ... mydata100
file= jldopen("/path to my file/mydata2.jld", "w")
file= jldopen("/path to my file/mydata3.jld", "w")
file= jldopen("/path to my file/mydata4.jld", "w")
.
.
.
file= jldopen("/path to my file/mydata100.jld", "w")

或者我尝试了这个程序 函数 get_mini_batch(X)

    mini_batches = round(Int, ceil(X / 100))

for i=1:mini_batches
mini_batch[i] = X[((i-1)*100 + 1):min(i*100, end)]
file[i]= jldopen("/path to my file/mydata.jld", "w")
write(file, "mini_batch", mini_batch) # alternatively, say "@write file mini_batch"
lose(file)
end
end

但是我不知道如何在这一行代码中创建变量 i=1....100 file[i]= jldopen("/path to my file/mydata(i) .jld", "w")

最佳答案

您正在寻找string formatting .

要创建文件名,您可以使用@sprintf()。然后您可以使用这些字符串将对象写入磁盘。

julia> using Printf  # Needed in Julia 1.0.0
julia> @sprintf("myfilename%02.d.jld", 5)
"myfilename05.jld"

循环示例:

julia> for i in 1:3
println(@sprintf("myfilename%03.d.jl", i))
end
myfilename001.jl
myfilename002.jl
myfilename003.jl

我在这里使用 %03.d 来展示如何向文件名添加前导零。这将有助于稍后进行排序。

关于makefile - Julia : How can l write and store files in a loop ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38012858/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com