Main Content

HDF4 から MATLAB 構文へのマッピング

各 HDF4 API には、ファイルからのデータの読み取り、ファイルへのデータの書き込み、その他の関連機能の実行に使用する個別の関数が数多く含まれています。たとえば、HDF4 Scientific Data (SD) API には、データを開いたり (SDopen)、閉じたり (SDend)、読み取ったり (SDreaddata) するための個々の C 関数が含まれています。SD API、HDF-EOS GD および SW API については、HDF4 ライブラリの各 C 関数にマッピングする関数が MATLAB® には用意されています。これらの関数は、matlab.io.hdf4.sdmatlab.io.hdfeos.gd、および matlab.io.hdfeos.sw の名前空間に実装されています。たとえば、SD API には HDF4 データセットを閉じるための C 関数 SDendaccess があります。

status = SDendaccess(sds_id); /* C code */

MATLAB からこの関数を呼び出すには、MATLAB 関数 matlab.io.hdf4.sd.endAccess を使用します。構文は次とよく似ています。

sd.endAccess(sdsID)

サポートされる残りの HDF4 API については、特定の HDF4 API 内にあるすべての関数に対してゲートウェイとして機能する関数がMATLAB に 1 つあります。たとえば、HDF Annotations (AN) API には、AN インターフェイスへのアクセスを終了するための C 関数 ANend が含まれます。

status = ANend(an_id); /* C code */

MATLAB からこの関数を呼び出すには、AN API に関連付けられている MATLAB 関数 hdfan を使用します。API の頭字語を除いた関数名を最初の引数として指定し、その他の必須の引数を所定の順序で関数に渡さなければなりません。以下に例を示します。

status = hdfan('end',an_id);

HDF4 API 関数によっては、データを返すために出力引数が使用されます。MATLAB では出力引数がサポートされていないため、これらの引数は戻り値として指定しなければなりません。

たとえば、関数 ANget_tagref は、注釈のタグと参照番号を 2 つの出力引数 ann_tag および ann_ref に返します。C コードは次のとおりです。

status = ANget_tagref(an_id,index,annot_type,ann_tag,ann_ref);

この関数を MATLAB から呼び出すには、出力引数を戻り値に変更します。

[tag,ref,status] = hdfan('get_tagref',AN_id,index,annot_type);

戻り値は、出力引数として指定される場合と同じ順で指定します。関数ステータスの戻り値は常に最後の戻り値として指定します。