Main Content

h5read

HDF5 データセットからのデータの読み取り

説明

data = h5read(filename,ds) は、HDF5 ファイル filename に含まれるデータセット ds のデータをすべて読み取ります。

data = h5read(filename,ds,start,count) は、start で指定された位置から、データセットのデータのサブセットを読み取ります。count 引数は、各次元に沿って読み取る要素数を指定します。

data = h5read(filename,ds,start,count,stride) は、stride で指定されたデータセットの各次元のインデックスの間隔を使用して、データのサブセットを返します。

すべて折りたたむ

HDF5 ファイルからデータセットのメタデータを取得してから、そのデータセットを読み取ります。

HDF5 ファイル example.h5 のデータセット /g4/lat のメタデータを表示します。

h5disp('example.h5','/g4/lat')
HDF5 example.h5 
Dataset 'lat' 
    Size:  19
    MaxSize:  19
    Datatype:   H5T_IEEE_F64LE (double)
    ChunkSize:  []
    Filters:  none
    FillValue:  0.000000
    Attributes:
        'units':  'degrees_north'
        'CLASS':  'DIMENSION_SCALE'
        'NAME':  'lat'

データセットを読み取ります。

data = h5read('example.h5','/g4/lat')
data = 19×1

   -90
   -80
   -70
   -60
   -50
   -40
   -30
   -20
   -10
     0
      ⋮

HDF5 ファイルからデータセットのメタデータを取得してから、そのデータセットのサブセットを読み取ります。

HDF5 ファイル example.h5 のデータセット /g4/world のメタデータを表示します。

h5disp('example.h5','/g4/world')
HDF5 example.h5 
Dataset 'world' 
    Size:  36x19
    MaxSize:  36x19
    Datatype:   H5T_IEEE_F64LE (double)
    ChunkSize:  []
    Filters:  none
    FillValue:  0.000000

データセットのデータの先頭から、5 行 3 列のデータのサブセットを読み取ります。

start = [1 1];
count = [5 3];
data = h5read('example.h5','/g4/world',start,count)
data = 5×3

     0     0     0
     0     0     0
     0     0     0
     0     0     0
     0     0     0

データセットからデータを読み取ります。このときに、各次元に沿って、指定されたデータセット インデックスの間隔でデータがサンプリングされます。

まず、HDF5 ファイル example.h5 のデータセット /g4/lon のメタデータを表示します。このデータセットの変数は 1 次元で、36 個の要素があります。

h5disp('example.h5','/g4/lon')  
HDF5 example.h5 
Dataset 'lon' 
    Size:  36
    MaxSize:  36
    Datatype:   H5T_IEEE_F64LE (double)
    ChunkSize:  []
    Filters:  none
    FillValue:  0.000000
    Attributes:
        'units':  'degrees_east'
        'CLASS':  'DIMENSION_SCALE'
        'NAME':  'lon'

読み取りは startLoc の位置から開始し、stride で指定された間隔で変数データを読み取ります。stride の値が 1 の場合、対応する次元内の隣接する値にアクセスします。一方、値が 2 の場合、対応する次元内の値に 1 つおきにアクセスし、以降同様に繰り返されます。

startLoc = 1; 
count  = 18; 
stride = 2; 
subsetData  = h5read('example.h5','/g4/lon',startLoc,count,stride);

出力変数 subsetData を調べます。

whos subsetData
  Name             Size            Bytes  Class     Attributes

  subsetData      18x1               144  double              

入力引数

すべて折りたたむ

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

ファイルの場所によって、filename は次のいずれかの形式をとります。

場所

形式

現在のフォルダー

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

例: 'myFile.h5'

その他のフォルダー

ファイルが現在のフォルダーまたは MATLAB® パス上のフォルダーにない場合は、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
HDFS™hdfs

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

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

データセット名。HDF5 ファイル内のデータセット名を含む文字ベクトルまたは string スカラーとして指定します。HDF5 データセットは、データ要素の多次元配列と、サポートするメタデータを併せたものです。

開始位置。正の整数の数値ベクトルとして指定します。N 次元のデータセットについて、start は 1 ベースのインデックスを含む、長さ N のベクトルです。start の要素は、変数の次元に同じ順序で対応しています。

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

読み取る要素数。正の整数の数値ベクトルとして指定します。N 次元のデータセットについて、count は各次元に沿って読み取る要素数を指定する長さ N のベクトルです。count の要素は、変数の次元に同じ順序で対応しています。count のいずれかの要素が Inf の場合、h5read は対応する次元の末尾まで読み取りを行います。

count を指定しない場合、関数 h5read は各次元の末尾までデータを読み取ります。

データセットの各次元に沿った変数インデックスの間隔。整数の数値ベクトルとして指定します。データセットの N 次元の変数について、stride は長さが N のベクトルです。ベクトル stride の要素は、変数の次元に、同じ順序で対応しています。値が 1 の場合、対応する次元内の変数の隣接する値にアクセスします。一方、値が 2 の場合、対応する次元内の変数の値に 1 つおきにアクセスし、以降同様です。

stride を指定しない場合、関数 h5read は各次元に沿って既定の間隔 1 でデータを読み取ります。

バージョン履歴

R2011a で導入