MATLAB サーバーの作成
メモ
MATLAB® を COM オートメーション サーバーとして呼び出すアプリケーションを作成する代わりに、.NET 用の MATLAB エンジン API の使用を検討してください。詳細については、.NET からの MATLAB の呼び出しを参照してください。
ProgID の選択
サーバーを作成するには、サーバーを識別するプログラム識別子 (ProgID) が必要です。MATLAB には、共有サーバーと専用サーバーの ProgID があります。これらの ID は、バージョンに固有か、バージョンに依存しないかのいずれかです。
共有サーバー用の MATLAB ProgID は次のとおりです。
Matlab.Application— オートメーション サーバーとして直近に使用された MATLAB のバージョン (MATLAB の最新のインストール バージョンではない場合がある) で、コマンド ウィンドウからオートメーション サーバーを開始します。Matlab.Autoserver— MATLAB の最新バージョンを使用して、コマンド ウィンドウからオートメーション サーバーを開始します。Matlab.Desktop.Application— MATLAB の最新バージョンを使用して、フル デスクトップの MATLAB をオートメーション サーバーとして開始します。
専用サーバー用の ProgID は次のとおりです。
Matlab.Application.SingleMatlab.Autoserver.Single
これらの "バージョンに依存しない" MATLAB の ProgID は、現在登録されているバージョンの MATLAB を指定します。
特定の登録済みバージョンの MATLAB のインスタンスを作成するには、"バージョン依存" の ProgID を使用できます。たとえば、Matlab.Application.7.14 では、MATLAB version 7.14 (R2012a) のインスタンスが作成されます。
オートメーション サーバーの作成
クライアント アプリケーションは、MATLAB サーバーとの接続を確立します。接続を作成する方法は、クライアント プログラムの言語によって異なります。この情報については、言語のドキュメンテーションを参照してください。次のようなオプションがあります。
C# クライアント:
mlType = Type.GetTypeFromProgID("Matlab.Application"); matlab = Activator.CreateInstance(mlType);ここで、
mlTypeとmatlabは次のように定義されます。public static Type mlType; public static Object matlab;
Visual Basic® .NET クライアント:
MatLab = CreateObject("Matlab.Application")ここで、
MatLabは次のように定義されます。Dim MatLab As Object
VBA クライアント:
Set MatLab = CreateObject("matlab.application")ここで、
MatLabは次のように定義されます。Dim MatLab As Object
デスクトップ モードでオートメーション サーバーとして MATLAB を開始
次の Microsoft® Visual Basic .NET コードは、ProgID Matlab.Desktop.Application を使用して、MATLAB を COM オートメーション サーバーとしてフル デスクトップ モードで起動します。
Dim MatLab As Object
Dim Result As String
MatLab = CreateObject("Matlab.Desktop.Application")
Result = MatLab.Execute("surf(peaks)")
既存の MATLAB サーバーへの接続
MATLAB サーバーの新しいインスタンスを必ずしも作成する必要はありません。クライアントは言語固有のコマンドを使用して、既存の MATLAB オートメーション サーバーに接続できます。たとえば、次の Visual Basic .NET の例では、既存の MATLAB サーバーに接続してから、サーバーでプロット コマンドを実行します。
Dim h As Object
h = GetObject(, "matlab.application")
h.Execute ("plot([0 18], [7 23])")メモ
最初の引数を省略する上記の GetObject 構文を使用してください。
あるいは、実行中の MATLAB セッションを COM サーバーとして指定できます。詳細については、オートメーション サーバーの手動作成を参照してください。
デスクトップ上の MATLAB の外観の制御
Visible プロパティを設定することで、デスクトップ上に MATLAB を表示できます。表示にした場合、MATLAB はデスクトップ上に表示されて操作できるようになります。このように設定しておくと、デバッグ処理時に便利です。Visible プロパティは既定で有効になっています (1 に設定)。
有効になっていない場合、MATLAB ウィンドウは表示されず、アプリケーションを操作することができません。デスクトップを非表示にするには、Visible プロパティを 0 に設定します。
次の Visual Basic .NET コードは、Visible プロパティを無効にする方法を示します。
Dim MatLab As Object
MatLab = CreateObject("matlab.application")
MatLab.Visible = 0