Matlab和.NET 4.0数据通信

fil*_*anu 5 .net c# matlab inter-process-communicat

我有一个在Matlab中实现的算法,我打算将其部署为DLL,以便与.NET项目集成..NET项目是基于GUI的应用程序,其中一小部分包括显示从运行算法获得的结果.我目前遇到的问题是我需要显示中间结果.该算法非常复杂,可以运行多次迭代(由用户选择),并且在每次迭代结束时,GUI应该使用当前数据进行更新.

我现在想到的最佳解决方案是让Matlab线程充当本地tcp服务器的tcp客户端,我将从我的C#GUI应用程序开始.但是,我觉得这种方法效率低下.我想知道这是否可以通过其他方式实现.

And*_*ein 5

首先,根据您的问题判断,我猜你知道Matlab builder NE.它允许您部署.NET DLL.如果你不知道,试试吧.

关于你的选择:

1)您可以将.NET对象传递给Matlab代码,该代码将用作通信方式.创建此类的新实例,并将其作为输入发送到您的Matlab代码.Matlab代码将在 每次迭代时调用UpdateGui逻辑.以下示例位于C#中

 class GuiUpdater{
      public void UpdateGui(int param1,int param2){
           //Do update logic here.
      }
 } 
Run Code Online (Sandbox Code Playgroud)

2)将您的DLL编译为COM(也可以在Matlab Builder NE中),并使用COM通信.
3)使用文件系统作为通信手段.在Matlab中写入文件,并在.NET中读取.