Main Content

MAT ファイルを読み取るカスタム プログラムの作成

カスタム アプリケーション作成の理由

データを MATLAB® アプリケーションに取り込むには、インポートとエクスポートでサポートされるファイル形式を参照してください。データを MAT ファイルに保存するには、ワークスペース変数の保存と読み込みを参照してください。MATLAB によるアプリケーション全体のプログラミングや他の MATLAB ユーザーとのデータ共有はこの手順に従い実施します。しかし、データ操作を目的としたカスタム プログラムの作成が必要となる場合があります。以下に例を示します。

  • データにカスタム形式が含まれている。

  • MATLAB を操作しないユーザー向けにアプリケーションを作成し、MATLAB データを提供する。

  • 外部アプリケーションからデータを読み取りたいが、ソース コードにアクセスできない。

カスタム アプリケーションを作成する前に、以下のトピックを参照して、MATLAB がデータ交換のニーズを満たしているかどうかを調べます。

機能に不足がある場合は、C/C++ または Fortran のカスタム プログラムを作成し、アプリケーションが要求する形式によるデータ ファイルの読み取りおよび書き込みを行うことができます。カスタム プログラムには次の 2 種類があります。

MAT ファイル インターフェイス ライブラリ

MAT ファイル API には、MAT ファイルの読み取りおよび書き込み用のルーチンがあります。ユーザー独自の C/C++ または Fortran プログラムからこれらのルーチンを呼び出します。独自コードを作成せずこれらのルーチンを使用して操作を実行します。ライブラリを使用することにより、アプリケーションは以降の MAT ファイル構造への変更に影響されなくなります。詳細については、MAT ファイル API ライブラリとインクルード ファイルを参照してください。

MATLAB では MAT ファイルを表す MATFile 型が提供されています。

MAT ファイルのルーチン

MAT ファイル API 関数

目的

matOpen

MAT ファイルを開きます。

matClose

MAT ファイルを閉じます。

matGetDir

MAT ファイルから MATLAB 配列のリストを取得します。

matGetVariable

MAT ファイルから MATLAB 配列を読み取ります。

matPutVariable

MAT ファイルに MATLAB 配列を書き込みます。

matGetNextVariable

MAT ファイルから次の MATLAB 配列を読み取ります。

matDeleteVariable

MAT ファイルから MATLAB 配列を削除します。

matPutVariableAsGlobal

load コマンドがグローバル ワークスペースに置けるように、MATLAB 配列を MAT ファイルに入れます。

matGetVariableInfo

MAT ファイルから MATLAB 配列ヘッダーを読み込みます (データなし)。

matGetNextVariableInfo

MAT ファイルから次の MATLAB 配列ヘッダーを読み込みます (データなし)。

MAT ファイルの C 専用ルーチン

matGetFp

MAT ファイルを指す ANSI® C ファイル ポインターを取得します。

MAT ファイル インターフェイス ライブラリでは、ユーザー定義のクラスによって作成された MATLAB オブジェクトはサポートされていません。

さまざまなスレッドで、MAT ファイル API 関数を使用する異なる MATLAB セッションを作成しないでください。MATLAB ライブラリはマルチスレッド セーフにはなっていないため、関数は一度に 1 つのスレッドでのみ使用可能です。

プラットフォーム間のデータ ファイル交換

互いに異なるコンピューター システム上で MATLAB ソフトウェアを操作して、他のシステム上のユーザーに MATLAB アプリケーションを送信できます。MATLAB アプリケーションは、関数とスクリプトを含む MATLAB コードとバイナリ データを含む MAT ファイルから構成されます。

MATLAB ソース ファイルはプラットフォームに依存しないことから、MAT ファイルはファイル ヘッダーにマシン シグネチャを含んでいることから、どちらのタイプのファイルもマシン間で直接転送できます。MATLAB では、ファイルを読み込むときにシグネチャを確認し、そこで外部ファイルであることが示された場合は必要な変換を行います。

異なるマシン アーキテクチャにわたって MATLAB を使用する場合、マシン間でバイナリ データと ASCII データの両方を交換する機能が必要です。このタイプの機能の例として、FTP、NFS、Kermit などがあります。これらのプログラムを使用する際は、MAT ファイルを "バイナリ ファイル モード" で伝送し、MATLAB ソース ファイルを "ASCII ファイル モード" で伝送するよう気を付けてください。モードが正しく設定されていない場合データが破損します。