Main Content

hdf5write

(非推奨) データを HDF5 形式のファイルに書き込む

hdf5write は推奨されません。代わりに h5write を使用してください。

説明

hdf5write(filename,loc,ds) はデータ dsfilename で指定された HDF5 ファイルに書き込みます。filename が存在しない場合、hdf5write により作成されます。filename が存在する場合、既定では、hdf5write はファイル内の既存のデータを上書きします。オプションの名前と値の引数を使用して、既存のファイルにデータを追加できます。

hdf5write(filename,details1,ds1,details2,ds2,...details,ds) は 1 つ以上の入力構造体内の値を使用して 1 つ以上のデータセット dsfilename に書き込みます。

hdf5write(filename,details,attr)details 内の値を使用してメタデータ attrfilename に書き込みます。

hdf5write(___,Name,Value) は、前述の構文の入力引数のいずれかに加え、オプションの名前と値の引数を指定します。

入力引数

すべて折りたたむ

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

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

場所

形式

現在のフォルダー

ファイル名を filename で指定します。

例: 'myFile.h5'

その他のフォルダー

ファイルが現在のフォルダーまたは MATLAB® パス上のフォルダーにない場合は、filename に絶対パス名または相対パス名を指定します。

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

例: 'myFolder\myFile.h5'

ファイル内の位置。データを書き込むデータセットまたはグループの絶対パス名が含まれる文字ベクトルまたは string スカラーとして指定します。

hdf5write がデータを HDF5 ファイルに書き込むために使用する入力構造体。1 つ以上の構造体配列として指定します。ファイルに書き込むのがデータセットなのか属性なのかに応じて、details 構造体にはさまざまなフィールドを含めることができます。

データセットの場合、details に次のフィールドを含めることができます。

  • Location — データを書き込むグループまたはデータセットの絶対パス名が含まれる文字ベクトルまたは string スカラー。

  • Name — 入力データセットに割り当てる名前を含む文字ベクトルまたは string スカラー。

属性の場合、details に次のフィールドを含めることができます。

  • AttachedTo — 入力属性が変更するオブジェクトの位置が含まれた構造体配列。

  • AttachType — 入力属性が変更するオブジェクト タイプ。'group' または 'dataset' として指定します。

  • Name — 入力属性に割り当てる名前を含む文字ベクトルまたは string スカラー。

HDF5 ファイルに書き込む入力データ。次の 1 つ以上として指定します。

  • 数値配列

  • 文字ベクトル

  • string スカラー

  • 文字ベクトルの cell 配列

  • string 配列

  • 数値データの cell 配列

  • 構造体配列

  • HDF5 オブジェクト。

属性名。グループまたはデータセットに属している属性の名前が含まれる文字ベクトルまたは string スカラーとして指定します。

名前と値の引数

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

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

例: 'WriteMode','append' はデータを既存の HDF5 ファイルに追加します。

MATLAB 7.1 以前との互換性。'V71Dimensions' と、true または false のいずれかとで構成されるコンマ区切りのペアとして指定します。true を指定した場合、hdf5write はデータセットの最初の 2 次元を並べ替え、ファイルに書き込まれるデータセットの次元の順序が旧バージョンの hdf5write (MATLAB 7.1 [R14SP3] 以前) と整合するようにします。

'V71Dimensions' の既定値は false です。この場合、出力データの次元の順序は変更されません。

HDF5 ではデータセットの次元は行を優先して記述されますが、MATLAB では列を優先してデータが格納されます。ただし、これらの次元を置き換えると、データの意味が正しく反映されず、メタデータが無効になることがあります。ファイルに書き込まれるデータは、データセットのデータ順を正しく反映します。つまり、出力データセットの各次元は、対応する MATLAB 変数の同じ次元に一致します。

例: 'V71Dimensions',true

書き込みモード。'WriteMode' と、文字ベクトルまたは string スカラーから構成されるコンマ区切りのペアとして指定します。'WriteMode' を次の値のいずれかとして指定します。

  • 'overwrite' (既定の設定) — ファイルを上書きします。

  • 'append' — データを既存の HDF5 ファイルに追加します。

例: 'WriteMode','append'

すべて折りたたむ

myfile.h5myfile2.h5、および myfile3.h5 という名前の 3 つの異なる HDF5 ファイルにデータを書き込みます。

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

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

テキスト エントリの 2 行 2 列のデータセットをファイル myfile2.h5 のサブグループに書き込みます。

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

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

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');

オブジェクトを使用してデータセットをファイル myfile3.h5 に書き込みます。

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

詳細

すべて折りたたむ

データ型のマッピング

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

MATLAB データ型

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

数値

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

文字ベクトルまたは string スカラー

単一の null 終端文字列。

文字ベクトルの cell 配列または string 配列

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

数値データの cell 配列

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

構造体配列

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

HDF5 オブジェクト

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

バージョン履歴

R2006a より前に導入