Main Content

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);
    

    ここで、mlTypematlab は次のように定義されます。

    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

関連する例

詳細