Main Content

h5write

HDF5 データセットへの書き込み

説明

h5write(filename,ds,data) は、指定された HDF5 ファイル内のデータセット ds の全体にデータを書き込みます。データセットのサイズが固定されている場合、書き込まれるデータ量はデータセットのサイズと一致していなければなりません。

h5write(filename,ds,data,start,count) はデータのサブセットをデータセットに書き込みます。その際、開始位置 start から始まり、count 要素の間継続します。多次元のデータセットでは、count は各方向の距離を指定します。h5write は、必要に応じて無制限の次元に沿って拡張可能なデータセットを拡張します。

h5write(filename,ds,data,start,count,stride) は、データセットの各次元に沿って要素間の間隔 stride を指定します。

すべて折りたたむ

DS1 という名前の 10 行 20 列のデータセットを作成します。

h5create("myfile.h5","/DS1",[10 20])

乱数の 10 行 20 列の配列をデータセットに書き込みます。DS1 の次元が固定されているため、それに書き込まれるデータ量はそのサイズと一致していなければなりません。

mydata = rand(10,20);
h5write("myfile.h5","/DS1",mydata)

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

h5disp("myfile.h5")
HDF5 myfile.h5 
Group '/' 
    Dataset 'DS1' 
        Size:  10x20
        MaxSize:  10x20
        Datatype:   H5T_IEEE_F64LE (double)
        ChunkSize:  []
        Filters:  none
        FillValue:  0.000000

DS2 という名前の 10 行 20 列のデータセットを作成します。

h5create("myfile.h5","/DS2",[10 20])

5 行 7 列のデータのサブセットをデータセットの最後の 5 行 7 列のブロックに書き込みます。書き込んでいるデータのサイズと一致するように count[5 7] と指定します。count のセルをこの開始位置から移動させるとデータセットの最後の要素で終わるため、start[6 14] と指定します。

mydata = rand(5,7);
h5write("myfile.h5","/DS2",mydata,[6 14],[5 7])

無制限の次元をもつデータセットにデータを書き込みます。

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

h5create("myfile.h5","/g2/DS2",[20 Inf],"Chunksize",[5 5]);

3 行 3 列のデータのブロックを "/g2/DS2" に書き込みます。開始位置 [3 2] から始まり、ブロックの最後まで書き込みます。無制限であるため、データセットの 2 番目の次元に沿って任意のサイズのデータを書き込むことができます。

data = rand(3);
start = [3 2];
count = [3 3];
h5write("myfile.h5","/g2/DS2",data,start,count);

データセットからすべてのデータを読み取ります。

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
      ⋮

入力引数

すべて折りたたむ

ファイル名。既存の 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"

データセット名。HDF5 ファイル内の既存のデータセットの名前を含む string スカラーまたは文字ベクトルとして指定します。

HDF5 ファイルに書き込むデータ。数値データ型が対応する h5create の呼び出しで指定されていた場合、data は浮動小数点数または整数データを含む数値行列です。データは非スパースでなければならず、start または count を指定しない場合は HDF5 データセットと同じサイズでなければなりません。データセット内の次元が無制限である場合、書き込まれるデータはその次元に沿って任意のサイズにすることができます。

"string" が対応する h5create の呼び出しでデータ型として指定されていた場合、data は MATLAB string 配列です。string 配列の次元は h5create の呼び出しで指定された次元と一致しなければなりません。

開始位置。正の整数の数値ベクトルとして指定します。n 次元のデータセットについて、start は 1 ベースのインデックスを含む、長さ n のベクトルです。start の要素はデータセットの次元に同じ順序で対応しています。ds のいずれかの次元が無制限である場合、start を指定しなければなりません。

start を指定しない場合、関数 h5write は各次元に沿って、最初のインデックスからデータセットへの書き込みを開始します。

書き込む要素数。正の整数の数値ベクトルとして指定します。n 次元のデータセットの場合、count は各次元に沿ってデータセットに書き込む要素数を指定する長さ n のベクトルです。count の要素はデータセットの次元に同じ順序で対応しています。ds のいずれかの次元が無制限である場合、count を指定しなければなりません。

データセットの各次元に沿った要素間の間隔。整数の数値ベクトルとして指定します。n 次元のデータセットの場合、stride は長さ n のベクトルです。ベクトル stride の要素は、データセットの次元に同じ順序で対応しています。値が 1 の場合、対応する次元の要素をスキップすることなく書き込み、値が 2 の場合、要素を 1 つおきに書き込み、以降も同様の繰り返しとなります。

stride を指定しない場合、関数 h5write は各次元に沿ってスキップすることなくデータを書き込みます。

制限

  • h5write は、HDFS™ にリモートに保存されているファイルへの書き込みをサポートしません。

バージョン履歴

R2011a で導入

すべて展開する