Development Environment    

MATLAB HDF 関数呼び出し方法

それぞれのHDF API は、データを読み書きし、他の関連関数を実行するルーチンから構成されています。たとえば、HDF SD APIは、データをオープン(SDopen)、クローズ(SDend)、読み出す(SDreaddata)といった別々のCルーチンで構成されています。

MATLABは、個々のAPIルーチンに対応する関数をサポートするのではなく、それぞれのHDF APIを単一の関数でサポートしています。ユーザは、この単一の関数を使用して、最初の引数に、HDF APIを構成する個別ルーチンの名称を指定するだけで、HDF APIに含まれる全てのルーチンにアクセスすることが可能となります。

たとえば、Cプログラムに含まれるHDFファイルへのアクセスを終了するために、HDF SD APIルーチンを呼び出すとします。

MATLABでは、このAPIに関連するMATLAB関数を使用するだけで、このルーチンを呼び出すことができます。HDFAPIに関連するMATLAB関数の名前は、全てAPIの頭字語を含んでいます。たとえばHDF SD APIのルーチンにアクセスするMATLAB関数には、hdfsdという名前が付けられているのです。

この関数の最初の引数に、APIルーチンの名前の頭字語を取って指定し、残りの引数を必要な順番に設定します。そして、MATLABから、SDendルーチンをコールします。

この手法を知っていれば、HDF APIルーチンを呼び出すときのMATLAB関数の使用法をすぐに決定することができます。しかし、HDF APIルーチンの中には、特に、データの出力に出力引数を使うルーチンでは、MATLABとコール形式(引数の順番)が異なるものもあります。詳細は、出力引数をもつHDFルーチンの取扱いを参照してください。正しいシンタックスを確認するには、MATLABのオンラインヘルプを利用してください。

出力引数をもつHDFルーチンの取扱い

データを出力するために出力引数をもつHDF API ルーチンをコールするとき、すべての出力引数をすべて、戻り値として設定する必要があります。たとえば、Cのシンタックスで、SDfileinfoルーチンは、2つの出力引数、ndatasetsnglobal_attsにHDFファイルに関するデータを出力します。

このルーチンをMATLABからコールするには、出力引数を戻り値に変更する必要があります。

出力引数の並び順と同じ順番で出力値を指定してください。対象の関数の戻り値statusは、常に最後に設定されます。

HDF ライブラリシンボリックコンテンツの取り扱い

HDF APIsのC バージョンは、ヘッダファイルの中に定義されたシンボリックなコンテンツを使って、モードとデータタイプを設定します。たとえば、SDstart ルーチンは、シンボリックなコンテンツを使って、HDFファイルを開くモードを指定しています。

このルーチンをMATLABからコールするときは、これらのコンテンツをテキスト文字列として指定します。

MATLABでは、定数を何ら省かずに指定することはもちろんのこと、接頭辞を省いて指定することもできます。たとえば、SDstartを呼び出すときに、文字列、'DFACC_RDONLY''dfacc_rdonly''rdonly'の3種類のいずれかを使用することができます。ここで大文字、子文字のいずれを用いても正確な指定が可能であることに注意してください。


 MATLAB HDF アプリケーションプログラミングインタフェース HDFデータのMATLABワークスペースへのインポート