メインコンテンツ

C++ コンパイル済みライブラリの関数の呼び出し

C++ ライブラリに対する MATLAB® インターフェイスのパブリッシャーから、インターフェイス ファイルと必要な場合は依存ライブラリ ファイルをインストールするように指示されます。パブリッシャーから依存ライブラリ ファイルが提供されるか、外部ソースからライブラリをインストールするように指示されるか、すべての関連ファイルへのリンクが提供されます。パブリッシャーが MATLAB アドオン を使用してツールボックスを作成した場合、この情報は、[アドオン マネージャー] のツールボックスの [オプション] メニューから表示できる入門ガイドで参照できます。詳細な情報が必要な場合や、入門ガイドが見つからない場合は、パブリッシャーにお問い合わせください。アドオンの詳細については、アドオンの管理を参照してください。

ライブラリ libname のインターフェイス ファイルの名前は libnameInterface.ext です。ext はプラットフォーム固有であり、Windows® では .dll、Linux® では .somacOS では .dylib です。

ランタイム パスの設定

MATLAB で検索されるのは、インターフェイス ファイルについては MATLAB パス、依存ライブラリ ファイルについてはシステム パスまたはランタイム検索パス (rpath) です。パブリッシャーから依存ライブラリ ファイルが提供された場合は、それらをインターフェイス ファイルと同じフォルダーに配置できます。あるいは、それらをシステム パスに追加するには、C++ インターフェイス用のランタイム ライブラリ パスの設定を参照してください。依存ライブラリの配置の詳細については、Missing or Incorrectly Installed Run-Time Librariesを参照してください。

MATLAB パスの設定

インターフェイス ファイルを含むフォルダーで addpath を呼び出します。

ヘルプの表示

MATLAB の関数 help と関数 doc は、ライブラリのメンバーについてのヘルプを提供します。たとえば、ライブラリ libname 内の関数 funcname のヘルプを表示するには、次のように入力します。

help clib.libname.funcname

オーバーロードされた関数からの選択

オーバーロードされた関数の場合、MATLAB はMATLAB Type to C++ Type Mappingに基づいて、特定のデータ型に最も近い入力データ型をもつ関数を選択します。

関数の呼び出し

入力引数 arg1,arg2,... と出力引数 retVal を使用して C++ ライブラリ libname の関数 funcname を呼び出すには、MATLAB clib 名前空間を使用します。以下を入力すると、MATLAB は自動的にライブラリを読み込みます。

retVal = clib.libname.funcname(arg1,arg2,...)

MATLAB がライブラリを読み込んだ後、タブ補完を使用して clib 名前空間のメンバーを表示できます。

既定の引数を使用した関数の呼び出し

C++ 関数が既定の引数で定義されている場合は、1 つ以上の後続の引数を指定することなく関数を呼び出すことができます。関数のヘルプで既定値が示されます。たとえば、arg の型が double で、その既定値が 100 の場合は、ヘルプでは以下のように表示されます。

help clib.libname.funcname
clib.libname.funcname(arg)
    Input Arguments
      arg             double = 100

以下のステートメントでは、同じ結果が生成されます。

clib.libname.funcname
clib.libname.funcname(100)

以下のステートメントも正しいですが、結果が異なる場合があります。

clib.libname.funcname(99)

MATLAB では、スカラー整数型および浮動小数点型で既定の引数がサポートされます。

enum 引数を使用した関数の呼び出し

C++ ライブラリ libname 内の clib.libname.enum を入力引数として受け入れる C++ の関数やメソッドに string を渡すことができます。

たとえば、clib.libname.Days を入力として受け取る関数 getValue を含む C++ ライブラリ libname の MATLAB インターフェイスがあるとします。

help clib.libname.getValue
getValue -  clib.libname.getValue Representation of C++ function getValue.

  RetVal = clib.libname.getValue(D)
    Input Arguments
      D              clib.libname.Days  

    Output Arguments
      RetVal         int32  

clib.libname.Days の値を表示するには、以下を入力します。

doc clib.libname.Days
Enumeration Summary
Fri	
Mon	
Sat	
Sun	
Thu	
Tue	
Wed

clib.libname.Days.Sun または string "Sun" のいずれかを指定して getValue を呼び出すことができます。

clib.libname.getValue(clib.libname.Days.Sun)
clib.libname.getValue("Sun")
ans = 106

参考

トピック