Matlab和.NET 4.0数据通信

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

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

首先,根据您的问题判断,我猜你知道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中读取。