h5dataset Create a dataset and write the data

## Syntax

                h5dataset(obj, name, sourceInfo [, sourceType], data, targetInfo [, targetType])
                h5dataset(filename, name, sourceInfo [, sourceType], data, targetInfo [, targetType])

## Arguments

obj

  a H5Object

name

  a string giving the path to the new dataset

sourceInfo

  a matrix 5xn of doubles

sourceType

  a string giving the type of the source

data

  a Scilab data

targetInfo

  a matrix 6xn of doubles

targetType

  a string giving the type of the target

filename

  a string giving the filename

## Description

Create a new named dataset (if it does not exist) based on the Scilab data passed as argument.

The target HDF5 type can be chosen in the list available in the HDF5 manual. Examples of this HDF5 type are "H5T_MIPS_U32" or "H5T_STD_B64BE", but shortcuts as "MIPS_U32" or "STD_B64BE" can also be used.

The source info gives information on how to get the data. It is a matrix 5xn where n is the number of dimensions of the data. The rows give the following information:

- 1st row: the data dimensions.
- 2nd row: the start point of the hyperslab.
- 3rd row: the hyperslab's count.
- 4th row: the hyperslab's stride.
- 5th row: the hyperslab's block.

For more explanation about hyperslab selection, see h5write.

The targetInfo matrix is 6xn double matrix. The first row gives the dimensions of the target dataset and the second one gives the maximal possible dimensions. When the first and the second row are not equal, the dataset will be chunked. The rows 3 to 6 give the hyperslab's start, count, stride and block.

## Examples

    // We create a new HDF5 file
    a = h5open(TMPDIR + "/test.h5", "w")

    // The data
    x = uint32(1:100);
    y = uint32(1:9);

    // We create the dataset
    // x is viewed as a C-matrix (row-major)
    h5dataset(a, "My_Dataset", [10 10 ; 2 1 ; 4 1 ; 2 1 ; 1 9], x, [7 12 ; 9 14 ; 3 3 ; 1 1 ; 1 1 ; 4 9])
    h5dump(a, "My_Dataset");

    // We add y data in extending the dataset dimensions
    h5dataset(a, "My_Dataset", [9 1 ; 1 1 ; 1 1 ; 1 1 ; 9 1], y, [9 12 ; 9 14 ; 1 1 ; 1 1 ; 1 1 ; 9 1])
    h5dump(a, "My_Dataset");

    // We can replace the y data
    h5dataset(a, "My_Dataset", [9 1 ; 1 1 ; 1 1 ; 1 1 ; 9 1], uint32(11:19), [9 12 ; 9 14 ; 1 1 ; 1 1 ; 1 1 ; 9 1])
    h5dump(a, "My_Dataset");

    // Free all the resources
    h5close(a)

## See also

- h5group
- h5attr
- h5write
- h5writeattr

## History

5.5.0 HDF5 module introduced.