ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

hdf5write

データを HDF5 形式のファイルに書き込む

    メモ:   関数 hdf5write は、将来のバージョンで削除される予定です。代わりに h5write を使用してください。

構文

hdf5write(filename,location,dataset)
hdf5write(filename,details,dataset)
hdf5write(filename,details,attribute)
hdf5write(filename, details1, dataset1, details2, dataset2,...)
hdf5write(filename,...,'WriteMode',mode,...)
hdf5write(..., 'V71Dimensions', BOOL)

説明

hdf5write(filename,location,dataset) はデータ dataset を HDF5 ファイル filename に書き込みます。filename が存在しない場合、関数 hdf5write により作成されます。filename が存在する場合、関数 hdf5write は、既定の設定では、既存のファイルを上書きします。ただし、オプションの構文を使用して、既存のファイルにデータを追加することもできます。

location は、ファイルのデータセットを書き込むかどうかを定義します。HDF5 ファイルは、UNIX® ディレクトリ構造体に似た階層構造体で構成されます。location は、UNIX パスに似た文字列です。

関数 hdf5write は、以下のルールに従って、dataset のデータを HDF5 データ型にマッピングします。

hdf5write(filename,details,dataset) は構造体 details の値を使用して datasetfilename に書き込みます。データセットの場合、details 構造体には、以下のフィールドを含めることができます。

フィールド名

説明

データ型

Location

ファイルのデータセットの位置

文字配列

Name

データセットの名前

文字配列

hdf5write(filename,details,attribute) は構造体 details の値を使用してメタデータ attributefilename に書き込みます。属性の場合、details 構造体には、以下のフィールドを含めることができます。

フィールド名

説明

データ型

AttachedTo

この属性が変更するオブジェクトの位置

構造体配列

AttachType

この属性が変更するオブジェクトのタイプ。有効な値は、'group' および 'dataset' です。

文字配列

Name

データセットの名前

文字配列

hdf5write(filename, details1, dataset1, details2, dataset2,...) は複数のデータセットおよび関連属性を一度の操作で filename に書き込みます。各データセットおよび属性には、details 構造体が関連付けられている必要があります。

hdf5write(filename,...,'WriteMode',mode,...)hdf5write が既存のファイルを上書きするか (既定の設定)、またはデータセットと属性をファイルに追加するかどうかを指定します。mode の有効な値は、'overwrite' および 'append' です。

hdf5write(..., 'V71Dimensions', BOOL) はファイルに書き込まれたデータセットの大部分を変更するかどうかを指定します。BOOL が true の場合、hdf5write は、以前のリリース (MATLAB® 7.1 [R14SP3] 以前) と同様に、データセットの最初の 2 次元を置き換えます。この動作は、HDF5 と MATLAB での配列の次元の表現方法の差を考慮するものでした。データセット次元は、HDF5 では行を優先して記述され、MATLAB では列を優先して格納されます。ただし、これらの次元を置き換えると、データの意味が正しく反映されず、メタデータが無効になることがあります。BOOL が false (既定の設定) の場合、ファイルに書き込まれるデータは、データセットのデータ順を正しく反映します。つまり、ファイルのデータセットの各次元は、対応する MATLAB 変数の同じ次元に一致します。

データ型のマッピング

次の表は、関数 hdf5write によりデータ型がワークスペースから HDF5 ファイルにどのようにマッピングされるかを示しています。ファイルに書き込まれるワークスペースのデータが、MATLAB データ型の場合、MATLAB データを HDF5 データ オブジェクトに変換するときに、関数 hdf5write は次のルールに従います。

MATLAB データ型

HDF5 データセットまたは属性

数値

対応する HDF5 ネイティブ データ型。たとえば、ワークスペース データ型が uint8 の場合、関数 hdf5write は、8 ビット整数として、データをファイルに書き込みます。HDF5 データ領域のサイズは、MATLAB 配列のサイズと同じです。

文字列

null で終了する単一の文字列

文字列のセル配列

それぞれの長さが同じ、null で終了する複数の文字列。長さは、セル配列の最も長い文字列の長さで決まります。HDF5 データ領域のサイズは、セル配列のサイズと同じです。

数値データのセル配列

セル配列と同じ次元の数値配列。配列の要素のサイズおよびタイプはすべて同じでなければなりません。データ型は、セル配列の最初の要素で決まります。

構造体配列

HDF5 複合タイプ。構造体の個々のフィールドは、個々のデータ型で同じデータ変換ルールを使用します。たとえば、文字列のセル配列は、null で終了する複数の文字列になります。

HDF5 オブジェクト

ファイルに書き込まれるデータが HDF5 オブジェクトで構成される場合、関数 hdf5write は、ファイルへの書き込み時に同じデータ型を使用します。HDF5.h5enum オブジェクトを除くすべての HDF5 オブジェクトに対して、データ領域の次元は、関数に渡される HDF5 オブジェクトの配列と同じになります。HDF5.h5enum オブジェクトの場合、HDF5 ファイルのデータセットのサイズおよび次元は、オブジェクトの Data フィールドと同じです。

uint8 値の 5 行 5 列のデータセットをルート グループに書き込みます。

hdf5write('myfile.h5', '/dataset1', uint8(magic(5)))

2 行 2 列の文字列データセットをサブグループに書き込みます。

dataset = {'north', 'south'; 'east', 'west'};
hdf5write('myfile2.h5', '/group1/dataset1.1', dataset);

データセットおよび属性を既存のグループに書き込みます。

dset = single(rand(10,10));
dset_details.Location = '/group1/dataset1.2';
dset_details.Name = 'Random';

attr = 'Some random data';
attr_details.Name = 'Description';
attr_details.AttachedTo = '/group1/dataset1.2/Random';
attr_details.AttachType = 'dataset';

hdf5write('myfile2.h5', dset_details, dset, ...
           attr_details, attr, 'WriteMode', 'append');

オブジェクトを使用してデータセットを書き込みます。

dset = hdf5.h5array(magic(5));
hdf5write('myfile3.h5', '/g1/objects', dset);

R2006a より前に導入

この情報は役に立ちましたか?