Write to HDF5 dataset
h5write(
writes a subset of data to a dataset, beginning at starting location
filename
,ds
,data
,start
,count
)start
, and continuing for count
elements. In a multidimensional dataset, count
specifies
a distance in each direction. h5write
extends an
extendable dataset along any unlimited dimensions, if necessary.
Create a 10-by-20 dataset named DS1
.
h5create('myfile.h5','/DS1',[10 20])
Write a 10-by-20 array of random numbers to the dataset. Since the dimensions of 'DS1'
are fixed, the amount of data to be written to it must match its size.
mydata = rand(10,20); h5write('myfile.h5', '/DS1', mydata)
Display the contents of the file.
h5disp('myfile.h5')
HDF5 myfile.h5 Group '/' Dataset 'DS1' Size: 10x20 MaxSize: 10x20 Datatype: H5T_IEEE_F64LE (double) ChunkSize: [] Filters: none FillValue: 0.000000
Create a 10-by-20 dataset named DS2
.
h5create('myfile.h5','/DS2',[10 20])
Write a 5-by-7 subset of data to the last 5-by-7 block of the dataset. Specify count
as [5 7]
to match the size of the data you are writing. Specify start
as [6 14]
, because moving count
cells from this starting point will end in the last element of the dataset.
mydata = rand(5,7); h5write('myfile.h5','/DS2',mydata,[6 14],[5 7])
Write data to a dataset that has an unlimited dimension.
Create a dataset that is unlimited along the second dimension. ChunkSize
must be specified to set any dimension of the dataset to Inf
.
h5create('myfile.h5','/g2/DS2',[20 Inf],"Chunksize",[5 5]);
Write a 3-by-3 block of data to '/g2/DS2'
. Begin at the starting point [3 2]
and write to the end of the block. You can write data of any size along the second dimension of the dataset, since it is unlimited.
data = rand(3); start = [3 2]; count = [3 3]; h5write('myfile.h5','/g2/DS2',data,start,count);
Read all of the data from the dataset.
h5read('myfile.h5','/g2/DS2')
ans = 20×4
0 0 0 0
0 0 0 0
0 0.8147 0.9134 0.2785
0 0.9058 0.6324 0.5469
0 0.1270 0.0975 0.9575
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
⋮
filename
— File nameFile name, specified as a character vector or string scalar containing the name of an existing HDF5 file.
Depending on the location you are writing to,
filename
can take on one of these
forms.
Location | Form | ||||||
---|---|---|---|---|---|---|---|
Current folder | To write to the current folder,
specify the name of the file in
Example:
| ||||||
Other folders | To write to a folder different from
the current folder, specify the full or relative
path name in
Example:
Example:
| ||||||
Remote Location | To write to a remote location,
Based on your
remote location,
For more information, see Work with Remote Data. Example:
|
ds
— Dataset nameDataset name, specified as a character vector or string scalar containing the name of an existing dataset in the HDF5 file.
data
— DataData to be written to the HDF5 file. If a numeric datatype was
specified in the corresponding call to
h5create
, then data
is a numeric matrix containing floating-point or integer data.
Data must be non sparse, and must be the same size as the HDF5
dataset if you do not specify start
or
count
. If a dimension in the dataset is
unlimited, then the data to be written can be any size along
that dimension.
If 'string'
was specified as the datatype in
the corresponding call to h5create
,
data
is a MATLAB string array. The string array dimensions must
match those specified in the call to
h5create
.
start
— Start locationStarting location, specified as a numeric vector of positive
integers. For an N-dimensional dataset, start
is a vector of length N containing 1-based indices. The elements
of start
correspond, in order, to the dataset
dimensions.
If you do not specify start
, then the
h5write
function starts writing to the
dataset from the first index along each dimension.
count
— Number of elementsInf
's (default) | numeric vectorNumber of elements to write, specified as a numeric vector of
positive integers. For an N-dimensional dataset,
count
is a vector of length N,
specifying the number of elements to write to the dataset along
each dimension. The elements of count
correspond, in order, to the dataset dimensions.
stride
— Spacing between elementsSpacing between elements along each dimension of the dataset,
specified as a numeric vector of integers. For an N-dimensional
dataset, stride
is a vector of length N. The
elements of the stride
vector correspond, in
order, to the dataset dimensions. A value of
1
writes without skipping elements in
the corresponding dimension, whereas, a value of
2
writes every other element, and so
on.
If you do not specify stride, then the
h5write
function writes data without
skipping along each dimension.
h5write
does not support writing to files stored
remotely in HDFS™.
h5write
function uses UTF-8 character encoding as the default settingBehavior changed in R2020a
UTF-8 is now the default character encoding for h5write
to ensure that all Unicode code points can be correctly represented in HDF5
files.
You have a modified version of this example. Do you want to open this example with your edits?