メインコンテンツ

厳密に型指定された MATLAB 関数からの C# コードの作成

この例では、厳密に型指定された MATLAB® 関数から C# (.cs) ファイルを作成し、それをサンプル C# アプリケーション コードと統合する方法を説明します。

MATLAB での関数の作成

次のコードを使用して、厳密に型指定された MATLAB 関数を stronglyTypedFactorial.m という名前のファイルに作成します。

function fact = stronglyTypedFactorial(n)
arguments
    n (1,1) uint64 {mustBeReal, mustBeLessThan(n,22)}
end
fact = 1;
for i = 1:n
    fact = fact*i;
end
end

MATLAB コマンド プロンプトで関数をテストします。

stronglyTypedFactorial(5)
ans =
  uint64
   120

C# コードの生成

C# (.cs) ファイルを生成します。

matlab.engine.typedinterface.generateCSharp("FactApp",Functions="stronglyTypedFactorial")
0 class(es) and 1 function(s) written to FactApp

この関数は、フォルダー FactApp 内に stronglyTypedFactorial.cs ファイルを作成します。このコードは、MATLABFunctions という名前の C# クラスを定義します。このクラスには、UInt64 型の引数 n を指定して MATLAB stronglyTypedFactorial 関数を呼び出す関数が含まれています。

インターフェイスで、入力が mustBeReal 引数を満たすことが確認されます。実行時に、MATLAB stronglyTypedFactorial 関数は入力が mustBeLessThan(n,22) 引数を満たすことを確認します。詳細については、.NET と厳密に型指定された MATLAB コード間のデータ型マッピングを参照してください。

 stronglyTypedFactorial.cs

MATLAB が生成した C# コードと C# アプリケーションの統合

次のコードを使用して、Program.cs という名前の C# アプリケーション ファイルを作成します。

 Program.cs

C# アプリケーションをコンパイルしてリンクします。詳細については、.NET エンジン プログラムのビルド要件を参照してください。

ランタイム ライブラリのパスを設定します。

  • Windows® コマンド プロセッサ:

    set PATH=matlabroot\extern\bin\win64;%PATH%
  • Linux®:

    LD_LIBRARY_PATH=matlabroot/extern/bin/glnxa64:LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
  • macOS:

    DYLD_LIBRARY_PATH=matlabroot/extern/bin/maca64:matlabroot/sys/os/maca64
    export DYLD_LIBRARY_PATH

アプリケーションを実行します。

factApp.exe
Factorial of 5 is 120

参考

| |

トピック