5

Matlabにアルゴリズムを実装しており、.NETプロジェクトと統合するためにそれをDLLとして展開することを計画しています。.NETプロジェクトはGUIベースのアプリケーションであり、その一部はアルゴリズムの実行から得られた結果の表示で構成されています。私が現在抱えている問題は、中間結果を表示する必要があるということです。アルゴリズムは非常に複雑で、(ユーザーが選択した)複数の反復で実行され、各反復の最後にGUIを現在のデータで更新する必要があります。

現時点で私が考えている最善の解決策は、MatlabスレッドがC#GUIアプリで起動するローカルtcpサーバーへのtcpクライアントとして機能することです。しかし、このアプローチは非効率的だと思います。私はこれが他の方法で達成できるかどうか疑問に思いました。

4

1 に答える 1

5

まず第一に、あなたの質問から判断すると、Matlab ビルダー NEについて知っていると思います。これにより、.NET DLL をデプロイできます。わからない場合は、試してみてください。

オプションについて:

1) 通信手段として機能する .NET オブジェクトを Matlab コードに渡すことができます。このクラスの新しいインスタンスを作成し、Matlab コードに入力として送信します。Matlab コードは、反復ごとにUpdateGui ロジックを呼び出します。次の例はC#です

 class GuiUpdater{
      public void UpdateGui(int param1,int param2){
           //Do update logic here.
      }
 } 

2) DLL を COM としてコンパイルし (Matlab Builder NE でも可能です)、COM 通信を使用します。
3) 通信手段としてファイルシステムを使用する。Matlab でファイルに書き込み、.NET で読み取ります。

于 2012-01-11T07:23:49.997 に答える