Matlab与.NET 4.0的数据通信
本文关键字:数据通信 NET Matlab | 更新日期: 2023-09-27 18:20:01
我有一个在Matlab中实现的算法,我计划将其部署为与.NET项目集成的DLL。NET项目是一个基于GUI的应用程序,其中一小部分包括显示运行算法获得的结果。我目前遇到的问题是,我需要显示中间结果。该算法非常复杂,可以运行多次迭代(由用户选择),在每次迭代结束时,GUI应该用当前数据更新。
我现在想到的最好的解决方案是让Matlab线程充当本地tcp服务器的tcp客户端,我将在C#GUI应用程序中启动该服务器。然而,我觉得这种方法效率低下。我想知道这是否可以通过其他方式实现。
首先,根据您的问题判断,我想您了解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.