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.Single
Matlab.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