最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
共有ライブラリは、実行時にアプリケーションによって動的に読み込まれる関数のコレクションです。C インターフェイスを備えた関数に対し、MATLAB® インターフェイスは、任意の言語によりプログラムされた関数が含まれるライブラリをサポートします。MATLAB は、サポートされているすべてのプラットフォーム上でダイナミック リンクをサポートします。
プラットフォーム | 共有ライブラリ | ファイルの拡張子 |
---|---|---|
Microsoft® Windows® | ダイナミック リンク ライブラリ ファイル | .dll |
UNIX® および Linux® | 共有オブジェクト ファイル | .so |
Apple Macintosh | ダイナミック共有ライブラリ | .dylib |
共有ライブラリには "ヘッダー ファイル" が必要であり、これはライブラリ内の関数の "シグネチャ" を提供します。関数シグネチャ、つまりプロトタイプは、関数の名前とそのパラメーターの数および型を設定します。共有ライブラリとそのヘッダー ファイルの絶対パスを指定します。
MATLAB でサポートされた C コンパイラがインストールされている必要があります。 サポートされているコンパイラの最新の一覧については、Supported and Compatible Compilers (サポートされるコンパイラ) Web サイトを参照してください。
MATLAB は、コマンド ライン インターフェイスを介して外部の共有ライブラリにビルドされた C ルーチンにアクセスします。このインターフェイスを使用して外部ライブラリを MATLAB メモリに読み込み、ライブラリ内の関数にアクセスできます。2 つの言語環境間で型が異なる場合でも、通常は型を変換せずに C 関数に渡すことができます。MATLAB が自動的に変換を行います。
共有ライブラリの使用の詳細は、次のトピックを参照してください。
ライブラリ関数が引数を渡す場合は、関数との間で受け渡しを行うデータ型を指定する必要があります。データの詳細は、次のトピックを参照してください。
共有ライブラリの操作の終了後は、必ずライブラリをアンロードしてメモリを解放してください。
詳細は、共有ライブラリのサポートの制限を参照してください。
MATLAB が共有ライブラリ内の関数にアクセスできるようにするために、まずライブラリをメモリに読み込みます。ライブラリが読み込まれると、ライブラリ関数の情報の要求や MATLAB コマンド ラインからの直接呼び出しが可能になります。ライブラリが不要になった場合は、メモリの使用量を節約するためメモリからアンロードしてください。
共有ライブラリを MATLAB に読み込むには、関数 loadlibrary
を使用します。最も一般的な構文は、以下になります。
loadlibrary('shrlib','hfile')
ここで、shrlib
は共有ライブラリのファイル名で、hfile
は関数プロトタイプを含むヘッダー ファイル名です。
ヘッダー ファイルは、関数 loadlibrary
の必須の引数であり、ライブラリ内の関数のシグネチャを提供します。
MATLAB コマンド ウィンドウでライブラリ関数についての情報を表示するには、libfunctions
コマンドを使用します。
関数シグネチャを表示するには、-full
スイッチを使用します。このオプションにより、C で記述された関数を呼び出すための MATLAB 構文が表示されます。パラメーター リストと戻り値で使用される型は、C の型ではなく MATLAB の型です。型の詳細は、C の型と対応する MATLAB の型を参照してください。
ライブラリ関数についての情報を別のウィンドウで表示するには、関数 libfunctionsview
を使用します。MATLAB で次の情報が表示されます。
見出し |
説明 |
---|---|
戻り値の型 |
メソッドの戻り値の型 |
名前 |
関数名 |
引数 |
入力引数の有効な型 |
引数リストと戻り値に使用される型は、C の型ではなく MATLAB の型です。型の詳細は、C の型と対応する MATLAB の型を参照してください。
共有ライブラリを MATLAB ワークスペースに読み込んだ後、関数 calllib
を使用してライブラリ内の関数を呼び出します。関数 calllib
の構文は次のようになります。
calllib('libname','funcname',arg1,...,argN)
ライブラリ名と関数名、および必要な場合は関数に渡される引数を指定します。
パラメーターの型を定義する方法についての詳細は、共有ライブラリ関数への引数の受け渡しを参照してください。
calllib
| libfunctions
| loadlibrary