Main Content

h5create

HDF5 データセットの作成

説明

h5create(filename,ds,sz) はデータセット ds を作成します。このデータセット名には HDF5 ファイル filename での完全な場所が含まれ、サイズは sz で指定されています。

h5create(filename,ds,sz,Name=Value) は、オプションの名前と値の引数を 1 つ以上指定します。

たとえば、ChunkSize=[5 5] は HDF5 ファイルに個別に格納することができるデータセットの 5 行 5 列のチャンクを指定します。

すべて折りたたむ

絶対パスが '/g1/g2/myDataset' として指定されている固定サイズ 100×200×300 のデータセット 'myDataset' を作成します。

h5create('myfile.h5','/g1/g2/myDataset',[100 200 300])

'myDataset' にデータを書き込みます。'myDataset' の次元が固定されているため、それに書き込まれるデータ量はそのサイズと一致していなければなりません。

mydata = ones(100,200,300);
h5write('myfile.h5','/g1/g2/myDataset',mydata)
h5disp('myfile.h5')
HDF5 myfile.h5 
Group '/' 
    Group '/g1' 
        Group '/g1/g2' 
            Dataset 'myDataset' 
                Size:  100x200x300
                MaxSize:  100x200x300
                Datatype:   H5T_IEEE_F64LE (double)
                ChunkSize:  []
                Filters:  none
                FillValue:  0.000000

単精度の 1000 行 2000 列のデータセットを作成し、最高水準の圧縮を適用します。HDF5 圧縮を適用する場合は、チャンク ストレージを使用しなければなりません。

h5create('myfile.h5','/myDataset2',[1000 2000],'Datatype','single', ...
          'ChunkSize',[50 80],'Deflate',9)

HDF5 ファイル全体の内容を表示します。

h5disp('myfile.h5')
HDF5 myfile.h5 
Group '/' 
    Dataset 'myDataset2' 
        Size:  1000x2000
        MaxSize:  1000x2000
        Datatype:   H5T_IEEE_F32LE (single)
        ChunkSize:  50x80
        Filters:  deflate(9)
        FillValue:  0.000000

2 番目の次元で無制限の 2 次元データセット '/myDataset3' を作成します。データセットの任意の次元を Inf に設定するには ChunkSize を指定しなければなりません。

h5create('myfile.h5','/myDataset3',[200 Inf],'ChunkSize',[20 20])

'/myDataset3' にデータを書き込みます。2 番目の次元が無制限であるため、2 番目の次元に沿って任意のサイズのデータを '/myDataset3' に書き込むことができます。

mydata = rand(200,500);
h5write('myfile.h5','/myDataset3',mydata,[1 1],[200 500])

HDF5 ファイルの内容全体を表示します。

h5disp('myfile.h5')
HDF5 myfile.h5 
Group '/' 
    Dataset 'myDataset3' 
        Size:  200x500
        MaxSize:  200xInf
        Datatype:   H5T_IEEE_F64LE (double)
        ChunkSize:  20x20
        Filters:  none
        FillValue:  0.000000

入力引数

すべて折りたたむ

ファイル名。HDF5 ファイル名を含む文字ベクトルまたは string スカラーとして指定します。

書き込み先の場所によって、filename は次のいずれかの形式にできます。

場所

形式

現在のフォルダー

現在のフォルダーに書き込むには、ファイルの名前を filename に指定します。

例: 'myFile.h5'

その他のフォルダー

現在のフォルダーとは異なるフォルダーに書き込むには、絶対パス名または相対パス名を filename に指定します。

例: 'C:\myFolder\myFile.h5'

例: 'myFolder\myFile.h5'

リモートの場所

リモートの場所に書き込むには、filename に次の形式の Uniform Resource Locator (URL) として指定されたファイルの絶対パスを含めなければなりません。

scheme_name://path_to_file/my_file.ext

リモートの場所に基づいて、scheme_name には次の表の値のいずれかを指定できます。

リモートの場所scheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs

詳細については、リモート データの操作を参照してください。

例: 's3://bucketname/path_to_file/myFile.h5'

  • filename がまだ存在していない場合、h5create により作成されます。

  • 既存の HDF5 ファイル名と新しいデータセット名を指定する場合、h5create は新しいデータセットを既存の HDF5 ファイルに追加します。

データセット名。作成されるデータセットの絶対パス名を含む文字ベクトルまたは string スカラーとして指定します。データセット名に中間グループを指定し、そのグループがまだ存在していない場合、h5create によって作成されます。

データセットのサイズ。行ベクトルとして指定します。無制限の次元を指定するには、sz の対応する要素を Inf として指定します。この場合は、ChunkSize も指定しなければなりません。

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: h5create("myFile.h5","/dataset1",[1000 2000],ChunkSize=[50 80],CustomFilterID=307,CustomFilterParameters=6) は、bzip2 フィルターの登録済みフィルター識別子 307 および圧縮ブロック サイズ 6 を使用して、50 行 80 列のチャンクが含まれた myFile.h5 HDF5 ファイルから dataset1 データセットを作成します。

データセットのデータ型。次のいずれかの MATLAB® データ型として指定します。

  • 'double'

  • 'single'

  • 'uint64'

  • 'int64'

  • 'uint32'

  • 'int32'

  • 'uint16'

  • 'int16'

  • 'uint8'

  • 'int8'

  • 'string'

チャンク サイズ。チャンクの次元を含む行ベクトルとして指定します。ChunkSize の長さは sz の長さと等しくなければならず、ChunkSize の各エントリは sz の対応する各エントリ以下でなければなりません。sz のいずれかの要素が Inf である場合、ChunkSize を指定しなければなりません。

gzip 圧縮レベル。0 ~ 9 の数値として指定します。0 は最も低い圧縮レベル、9 は最も高い圧縮レベルです。

数値データセットの欠損データの埋め込み値。数値として指定します。

32 ビットの Fletcher チェックサム フィルター。数値として、あるいは logical 1 (true) または 0 (false) として指定します。Fletcher チェックサム フィルターは、ファイル内の転送データにエラーがないことを検証するように設計されています。

シャッフル フィルター。数値として、あるいは logical 1 (true) または 0 (false) として指定します。シャッフル フィルターはメモリに格納されているデータのバイト順を再配列することで圧縮率を改善するように設計されたアルゴリズムです。

テキスト エンコード。次の値のいずれかとして指定します。

  • 'UTF-8' — UTF-8 エンコードを使用して文字を表す。

  • 'system' — システム エンコードを使用して文字をバイトとして表す (非推奨)。

The HDF Group によって割り当てられた登録済みフィルター プラグインのフィルター識別子。正の整数として指定します。登録済みフィルターのリストについては、The HDF Group の Web サイトの Filters ページを参照してください。

この引数の既定値は、データ セットで、動的に読み込まれたフィルターを圧縮に使用しないことを意味します。

データ型: double

サードパーティ フィルターのフィルター パラメーター。数値スカラーまたは行ベクトルとして指定します。この引数を指定せずに CustomFilterID を指定した場合、関数 h5create は空ベクトルを HDF5 ライブラリに渡し、フィルターは既定のパラメーターを使用します。

この名前と値の引数は、HDF5 ライブラリ内の関数 H5Pset_filtercd_values 引数に対応しています。

データ型: double

制限

  • h5create は、HDFS™ にリモートに保存されるファイルの作成をサポートしません。

詳細

すべて折りたたむ

HDF5 内のチャンク ストレージ

チャンク ストレージとは、データセットを "チャンク" と呼ばれる小さいデータに分割することでメモリ内に格納する方法を指しています。チャンクは HDF5 ファイルに個別に読み取りおよび書き込むことができるため、データセットをチャンク化することで、データセットのサブセットを操作するときのパフォーマンスを向上させることができます。

バージョン履歴

R2011a で導入

すべて展開する