2016-10-26 11 views
0

私はC#で書き直したくない複雑なMatlab関数を持っています。この関数は、N個の倍精度値の配列を返します。MatlabのC#への出力

関数を.NETアセンブリ(.dllファイル)にコンパイルし、その関数の署名が[resutls] = myFunc( 'stringInput')のようになっている場合、どのようにして関数をC#コード?

ありがとうございます!

+0

あなたの '.net'プロジェクトにdllへの参照を入れて、あなたの関数の署名を尊重してください...小さな例で自分で試してみましたか? – Hoki

答えて

0

ここであなたがそれを行うための手順を見つけることができます。

https://www.mathworks.com/help/compiler_sdk/gs/create-a-cc-application-with-matlab-code-1.html

が必要であり、ランタイムライブラリがあなたのコードを実行するコンピュータにインストールされている(.dllはパッケージを作成するときに、それを追加することができます)

+0

明日リンクが壊れるとどうなりますか?あなたの答えにコードを提供することを検討してください。 – peval27

0

私のやり方は、MLAppをプロジェクト参照として追加することです。 MATLABから 、あなたは自動化サービスを開始する必要があります。

enableservice('AutomationServer', true); 

をとC#の中には、使用してMatlabのに接続することができます。

MLApp.DIMLApp matlabInstance = (MLApp.DIMLApp)Marshal.GetActiveObject("Matlab.Desktop.Application"); 

次に、MLAppのインターフェイス機能を使用して対話できます。例えば。

int a = (int)matlabInstance.GetVariable("variableName", "base"); 

さらにはstuffを実行してください。例:

matlabInstance.Execute("evalin('base' , 'plot(range , dataVector , ''k'');');"); 

もちろん、エラー処理などが必要です。通常のアプリケーションのものです。 それについての話題がありますhere

関連する問題