# Exporting and importing a 3D matrix

**URL:** <https://discourse.julialang.org/t/exporting-and-importing-a-3d-matrix/81300>\
**Category:** General Usage\
**Tags:** hdf5, array, jld2, dataframes, csv\
**Created:** [May 19, 2022, 6:01am UTC](https://discourse.julialang.org/t/exporting-and-importing-a-3d-matrix/81300 "2022-05-19T06:01:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![CactusHamster](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cactushamster/32/35481_2.png) [@CactusHamster](https://discourse.julialang.org/u/CactusHamster)\
**Post date:** [May 19, 2022, 6:01am UTC](https://discourse.julialang.org/t/exporting-and-importing-a-3d-matrix/81300/1 "2022-05-19T06:01:25Z")

</div>

We generate a matrix like this

```julia
for i = 1:5
   for j = 1:5
      for k = 1:5
         d[i, j, k] = rand(1)
      end
   end
end

```

Is there an easy way to save matrix `d` somewhere and later on just call it and use it?  
With

```julia
CSV.write("path/file_name.csv", Tables.table(d), header=false)

```

I can do it very easily for 2D matrix but I’m not sure if and how it works for a 3D matrix.

---

<div class="post-metadata">

**Author:** ![bkamins](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/bkamins/32/208538_2.png) [@bkamins](https://discourse.julialang.org/u/bkamins)\
**Post date:** [May 19, 2022, 6:11am UTC](https://discourse.julialang.org/t/exporting-and-importing-a-3d-matrix/81300/2 "2022-05-19T06:11:36Z")

</div>

In this case probably [GitHub - JuliaIO/HDF5.jl: Save and load data in the HDF5 file format from Julia](https://github.com/JuliaIO/HDF5.jl) is one of the options that you could consider.

---

<div class="post-metadata">

**Author:** ![skleinbo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skleinbo/32/36080_2.png) [@skleinbo](https://discourse.julialang.org/u/skleinbo)\
**Post date:** [May 19, 2022, 6:35am UTC](https://discourse.julialang.org/t/exporting-and-importing-a-3d-matrix/81300/4 "2022-05-19T06:35:46Z")

</div>

There is also [GitHub - JuliaIO/JLD2.jl: HDF5-compatible file format in pure Julia](https://github.com/JuliaIO/JLD2.jl)

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [May 19, 2022, 7:23am UTC](https://discourse.julialang.org/t/exporting-and-importing-a-3d-matrix/81300/5 "2022-05-19T07:23:15Z")

</div>

Depending on your use case serialization might also be an option:

[https://docs.julialang.org/en/v1/stdlib/Serialization/](https://docs.julialang.org/en/v1/stdlib/Serialization/)

---

<div class="post-metadata">

**Author:** ![sostock](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sostock/32/5546_2.png) [@sostock](https://discourse.julialang.org/u/sostock)\
**Post date:** [May 19, 2022, 9:53am UTC](https://discourse.julialang.org/t/exporting-and-importing-a-3d-matrix/81300/6 "2022-05-19T09:53:42Z")

</div>

> [@CactusHamster](#):
>
> ` d[i, j, k] = rand(1)`

Don’t call `rand(1)` here, just call `rand()`. The former returns a vector of length 1 while the latter returns just a number.
