h5create
HDF5 データセットの作成
説明
例
絶対パスが /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 列のデータセットを含む 2 つの HDF5 ファイルを作成します。最初のデータセットには最大圧縮を指定した deflate フィルターを使用し、2 番目のデータセットにはエントロピー エンコードを指定した SZIP フィルターを使用します。圧縮フィルターを適用するときは、チャンク サイズを指定する必要があります。
h5create("myFileDeflate.h5","/myDatasetDeflate",[1000 2000], ... ChunkSize=[50 80],Deflate=9) h5create("myFileSZIP.h5","/myDatasetSZIP",[1000 2000], ... ChunkSize=[50 80],SZIPEncodingMethod="entropy")
2 つのファイルの内容を表示し、さまざまなフィルターを確認します。
h5disp("myFileDeflate.h5")HDF5 myFileDeflate.h5
Group '/'
Dataset 'myDatasetDeflate'
Size: 1000x2000
MaxSize: 1000x2000
Datatype: H5T_IEEE_F64LE (double)
ChunkSize: 50x80
Filters: deflate(9)
FillValue: 0.000000
h5disp("myFileSZIP.h5")HDF5 myFileSZIP.h5
Group '/'
Dataset 'myDatasetSZIP'
Size: 1000x2000
MaxSize: 1000x2000
Datatype: H5T_IEEE_F64LE (double)
ChunkSize: 50x80
Filters: szip
FillValue: 0.000000
ランダム化されたデータを各データセットに書き込みます。
myData = rand([1000 2000]); h5write("myFileDeflate.h5","/myDatasetDeflate",myData) h5write("myFileSZIP.h5","/myDatasetSZIP",myData)
結果のファイルのサイズを調べて、圧縮フィルターを比較します。このデータの場合、deflate フィルターで、より大きな圧縮が得られます。
deflateListing = dir("myFileDeflate.h5"); SZIPListing = dir("myFileSZIP.h5"); deflateFileSize = deflateListing.bytes
deflateFileSize = 15117631
SZIPFileSize = SZIPListing.bytes
SZIPFileSize = 16027320
sizeRatio = deflateFileSize/SZIPFileSize
sizeRatio = 0.9432
2 番目の次元に沿って無制限の 2 次元データセット myDataset3 を作成します。データセットの次元を Inf に設定する場合は、名前と値の引数 ChunkSize を指定する必要があります。
h5create("myFile.h5","/myDataset3",[200 Inf],ChunkSize=[20 20])
myDataset3 にデータを書き込みます。2 番目の次元は無制限であるため、2 番目の次元に沿って任意のサイズのデータを書き込むことができます。さらに、データセットの 1 つの次元が無制限であるため、データセットにデータを書き込むときに start および count 引数を指定する必要があります。
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 がまだ存在しない場合、h5create 関数がファイルを作成します。
書き込み先の場所によって、filename は次のいずれかの形式にできます。
位置 | 形式 | ||||||
|---|---|---|---|---|---|---|---|
| 現在のフォルダー | 現在のフォルダーに書き込むには、ファイルの名前を 例: | ||||||
その他のフォルダー | 現在のフォルダーとは異なるフォルダーに書き込むには、絶対パス名または相対パス名を 例: 例: | ||||||
リモートの場所 | リモートの場所に書き込むには、次の形式の Uniform Resource Locator (URL) として
リモートの場所に基づいて、
詳細については、リモート データの操作を参照してください。 例: |
データセット名。作成されるデータセットの絶対パス名を含む string スカラーまたは文字ベクトルとして指定します。現在存在しないデータセットを指定すると、h5create 関数によってデータセットが作成されます。さらに、現在存在しない中間グループを指定すると、h5create 関数によってそのグループが作成されます。
例: "/myDataset"
例: "/g1/g2/myNestedDataset"
データセットのサイズ。スカラーまたは行ベクトルとして指定します。無制限の次元を指定するには、sz の対応する要素を Inf として指定します。この場合は、ChunkSize も指定しなければなりません。
例: 50
例: [2000 1000]
例: [100 200 Inf]
データ型: double
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: h5create("myFile.h5","/dataset1",[1000 2000],ChunkSize=[50 80],CustomFilterID=307,CustomFilterParameters=6) は、50 行 80 列のチャンク、登録された bzip2 フィルター (識別子 307)、圧縮ブロックサイズ 6 を使用して、HDF5 ファイル myFile.h5 に 1000 行 2000 列のデータセット dataset1 を作成します。
データセットのデータ型。次の値のいずれかとして指定して、MATLAB® データ型を表します。
"double""single""uint64""int64""uint32""int32""uint16""int16""uint8""int8""string"
データ型: string | char
チャンク サイズ。チャンクの次元を含むスカラーまたは行ベクトルとして指定します。sz のいずれかのエントリが Inf である場合、ChunkSize を指定しなければなりません。ChunkSize の長さは sz の長さと等しくなければならず、ChunkSize の各エントリは sz の対応する各エントリ以下でなければなりません。
例: 10
例: [20 10 100]
データ型: double
deflate 圧縮レベル。0 ~ 9 の整数スカラー値として指定します。既定値 0 は、圧縮なしを示します。値 1 は最小圧縮を示し、値 9 は最大圧縮を示します。Deflate を指定した場合は、ChunkSize も指定しなければなりません。
Deflate と SZIPEncodingMethod の両方を同じ関数呼び出しで指定することはできません。
データ型: double
数値データセットの欠損データの埋め込み値。数値として指定します。
データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64
32 ビットの Fletcher チェックサム フィルター。数値として、あるいは logical 1 (true) または 0 (false) として指定します。Fletcher チェックサム フィルターは、ファイル内の転送データにエラーがないことを検証します。Fletcher32 を指定した場合は、ChunkSize も指定しなければなりません。
データ型: logical | double
シャッフル フィルター。数値として、あるいは logical 1 (true) または 0 (false) として指定します。シャッフル フィルターはメモリに格納されているデータのバイト順を再配列することで圧縮率を改善します。Shuffle を指定した場合は、ChunkSize も指定しなければなりません。
データ型: logical | double
テキスト エンコード。次の値のいずれかとして指定します。
"UTF-8"— UTF-8 エンコードを使用して文字を表す。"system"— システム エンコードを使用して文字をバイトとして表す (非推奨)。
データ型: string | char
The HDF Group によって割り当てられた登録済みフィルター プラグインのフィルター識別子。正の整数として指定します。登録済みフィルターのリストについては、The HDF Group の Web サイトの Filters ページを参照してください。
CustomFilterID に値を指定しなかった場合、データセットは動的に読み込まれるフィルターを圧縮に使用しません。
CustomFilterID を指定した場合は、ChunkSize も指定しなければなりません。
データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64
サードパーティ フィルターのフィルター パラメーター。数値スカラーまたは数値行ベクトルとして指定します。この引数を指定せずに CustomFilterID を指定した場合、h5create 関数は空ベクトルを HDF5 ライブラリに渡し、フィルターは既定のパラメーターを使用します。
この名前と値の引数は、HDF5 ライブラリ内の関数 H5Pset_filter の cd_values 引数に対応しています。
CustomFilterParameters を指定した場合は、CustomFilterID も指定しなければなりません。
データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64
R2024b 以降
SZIP 圧縮のブロックあたりのピクセル (HDF5 データ要素) の数。2 ~ 32 の偶数として指定します。SZIPPixelsPerBlock を指定した場合は、SZIPEncodingMethod も指定しなければなりません。SZIPPixelsPerBlock の値は、各データセット チャンク内の要素の数以下でなければなりません。
例: 32
データ型: double | single | uint8 | uint16 | uint32 | uint64 | int8 | int16 | int32 | int64
詳細
チャンク ストレージとは、データセットを "チャンク" と呼ばれる小さいデータに分割することでメモリ内に格納する方法を指しています。チャンクは HDF5 ファイルに個別に読み取りおよび書き込むことができるため、データセットをチャンク化することで、データセットのサブセットを操作するときのパフォーマンスを向上させることができます。
ヒント
同じデータセットで deflate フィルターと SZIP フィルターの両方を有効にするには、低水準の
H5P.set_deflate関数とH5P.set_szip関数を使用します。
バージョン履歴
R2011a で導入名前と値の引数 SZIPEncodingMethod および SZIPPixelsPerBlock を使用して、SZIP 圧縮を指定してデータセットを作成できます。
名前と値の引数 CustomFilterID と CustomFilterParameters を使用して、動的に読み込まれるフィルターを使用した圧縮を有効にすることができます。
Amazon S3、Windows Azure Blob Storage、HDFS™ などのリモートの場所に HDF5 ファイルを作成できます。
Unicode 文字としてエンコードされた名前をもつ HDF5 ファイルを作成できます。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)