5

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

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

4

1 回答 1

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.
      }
 } 

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

于 2012-01-11T07:23:49.997 回答