我有一个庞大的数据集,分为k个迷你数据集,其中k = 100。知道我想将这些迷你数据集存储在不同的文件中。 存储我的海量数据集l使用了以下说明:
$j('#submit').click(function(event){
$j('#comment').val('');
event.preventDefault();
});
知道l将我的数据集划分为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)
但是此函数允许将不同的子数据集存储在一个文件中,该文件在每次迭代时都会被覆盖。
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
或者我尝试了这个程序 function get_mini_batch(X)
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")
但我不知道如何在这个行代码文件[i] = jldopen(" /我的文件的路径/ mydata(i).jld "," w")
答案 0 :(得分:4)
您正在寻找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
来说明如何在文件名中添加前导零。这将有助于以后的排序。
答案 1 :(得分:1)
我同意niczky12您正在寻找字符串格式。但我会亲自用另一种方式写出来:
"/path to my file/mydata$i.jld"
而不是使用sprintf
。
示例:
julia> i = 4
4
julia> "/path/mydata$i.jld"
"/path/mydata4.jld"