MATLAB 関数を開発しました。別の C# アプリケーションからその関数を呼び出し、いくつかのパラメーターを渡して C# プログラムで結果を取得する方法を探しています。
Dynamic Data Exchange (DDE) または COM オブジェクトを使用できると聞きましたが、実際に使用できますか?
MATLAB 関数を開発しました。別の C# アプリケーションからその関数を呼び出し、いくつかのパラメーターを渡して C# プログラムで結果を取得する方法を探しています。
Dynamic Data Exchange (DDE) または COM オブジェクトを使用できると聞きましたが、実際に使用できますか?
MATLABCentralには良い例があります。
これは、 MATLABと通信する方法に関する3つの方法を示しています。
COM(私はそれについての経験がありません)
短所:MATLABをターゲットコンピューターにインストールする必要があります。
MATLAB .NET Builderは、MATLABコードを.NETアセンブリにコンパイルし、直接使用できます。
長所:MATLABをターゲットコンピューターにインストールする必要はありません
短所:それは高価です
MATLABコンパイラは、MATLABコードをC /C++ライブラリまたはEXEファイルにコンパイルします。P/Invokeで使用できます。
長所:MATLABをターゲットコンピューターにインストールする必要はありません
短所:高価で、P/Invokeがたくさんあります。
3 番目のオプション: delegatesがあります。MATLAB の起動 -> .NET アセンブリの読み込み -> MATLAB 関数へのデリゲート ハンドルを使用して .NET 関数を実行します。
このサイトには、すべてをセットアップするための優れた例があります。MATLAB .NET 配布ツールを使用できます。
必要がある
この方法の利点は、ターゲット マシンに MATLAB をインストールする必要がないことですが、実行にかなりのコストがかかるという欠点があります。