Thanks. Your answers are really helpful. Yi
On Mon, May 26, 2014 at 9:10 PM, Tim Holy <[email protected]> wrote: > On Monday, May 26, 2014 08:13:21 PM yi lu wrote: > > OK, I understand. I think storing data into memory will be fine for me. > > > > I do read the *Multi-dimensional Arrays *part*, *and find the assignment > > part not so familiar. > > Aside from the use of [] rather than (), assignment is almost exactly like > in > Matlab. The main practical difference is that in Julia it's very efficient > to > write loops and directly address elements as u[xi, yi, ti]. > > > This is because I use MATLAB before and I often do > > some code like > > a=[a,b] > > which may be very slow in fact(I am not so sure). > > Right. While in Matlab there isn't a great alternative, for growing 1d > arrays > Julia has push! and append! which are vastly more efficient. For various > (important) reasons, that doesn't work with a multidimensional array. > However, > even in 1d the fastest of all is to pre-allocate your storage and address > each > element directly, and that also works in 3d. > > --Tim > > > > > Yi > > > > On Mon, May 26, 2014 at 7:36 PM, Tim Holy <[email protected]> wrote: > > > On Monday, May 26, 2014 07:22:16 PM yi lu wrote: > > > > I don't quite understand *Fabian*. For the *h5 files* part, do you > mean > > > > I > > > > can interact with h5 files in the disk while the program is running? > > > > > > Yes, you can. But in your question, you left it ambiguous as to whether > > > you > > > want to store in memory or store to disk. If you only need to store to > > > memory > > > (if you have enough RAM for your big arrays), then HDF5 won't be > > > relevant--- > > > just use an Array. Please do read the documentation about > multidimensional > > > arrays, they already do everything you're asking about, including your > > > u[t_i,z_k] example. > > > > > > If you do need to store them to disk, then yes, HDF5 is a good choice. > See > > > the > > > documentation: > > > https://github.com/timholy/HDF5.jl > > > https://github.com/timholy/HDF5.jl/blob/master/doc/hdf5.md > > > https://github.com/timholy/HDF5.jl/blob/master/doc/jld.md > > > and pay particular attention to the parts about incremental writes and > > > memory > > > mapping. > > > > > > --Tim > > > > > > > Yi > > > > > > > > On Mon, May 26, 2014 at 5:38 PM, Fabian Gans <[email protected]> > > > > > > wrote: > > > > > Hi Yi, > > > > > > > > > > in this case I would suggest to use the HDF5 package > > > > > https://github.com/timholy/HDF5.jl. It supports reading and > writing > > > > > > julia > > > > > > > > data file (.jld) if you want to write whole variables. If you want > > > > > something more portable that you can read from other applications > you > > > > > > can > > > > > > > > use plain HDF5 files. It is possible to read and write slices of > > > > > > arrays to > > > > > > > > h5 files, so for your heat equation example you would have a 1D > array > > > > > > in > > > > > > > > your julia memory that you iteratively update and write consecutive > > > > > > slices > > > > > > > > to the h5 file. > > > > > > > > > > Fabian >
