MatlabとC#の相互運用
-
10-07-2019 - |
質問
インターネットを覗いてみると、C#とMatlabを相互運用できるようです。私は誰かがそれで成功したかどうか、そして彼らがそうするために何をしたかについて疑問に思っています。可能であれば、COMを使用せずに何らかの方法でそれを実行します。お時間をいただきありがとうございます。
解決
はい、まったく可能です。結局、Cインターフェイスを使用し、混合モードDLLを使用してそれを呼び出すことになりました(そして、C#を呼び出して...しかし、それは他のCコードともインターフェースをとっていたためです)。とても簡単です。プログラムを実行するコンピューターに、Matlab Runtime MCRInstaller.exeをインストールする必要があります。
編集:壊れたリンクを削除
他のヒント
MATLABのR2009aリリース以降、.NETオブジェクトにはMATLABからアクセスできます。
http://www.mathworks.com/help/techdoc/matlab_external/ brpb5k6.html
古いバージョンのMATLABでは、CCWを使用してMATLABから.NETオブジェクトにアクセスできます。
http://www.mathworks。 com / support / solutions / data / 1-5U8HND.html?solution = 1-5U8HND
および.NETのMATLABエンジン:
MATLAB Builder NEを使用して、mコードを.NETアセンブリにラップすることもできます。
はい、私はそれをどうにかして、それはほとんど痛みがありませんでした。
.NET用のMATLABコードをコンパイルし(前述の回答で説明したとおり)、MCRインストーラーを実行し、.NETプロジェクトでMWArray.dllとコンパイル済みコードdllを参照して、すぐに実行する必要があります。
唯一の迷惑は、インターフェースがあなたに強いるキャスト(そして時には複数のキャストです!)でした(キャスト演算子で明示的に使用)
Matlab用の無料のオープンソース.NETラッパーがあり、非常に簡単です。 http://www.codeproject.com/KB/dotnet/matlabeng.aspx
これを使用します。
R2009aプレリリースでは、MATLABから.netアセンブリを呼び出すことができます。
これがどれだけ当てはまるかわかりませんが、matlab実行可能ファイルまたは MEX 基本的に、CまたはFORTRANでプログラムを作成し、いくつかのライブラリと関数を含めれば、matlabでCまたはFORTRAN関数を使用できます
お金を使う意思がある場合、これが必要な場合があります:
http://www.mathworks.com/products/netbuilder/
.NETとCOMの両方から呼び出すことができるMatlabコードのラッパーを生成できます。