C# MATLAB与C语言的双向通信#

C# MATLAB与C语言的双向通信#,c#,matlab,C#,Matlab,我有一个第三方MATLAB工具箱,它可以对一组数据执行一些计算。我正在用C#设计一个基于Windows窗体的应用程序,以将其与MATLAB工具箱集成。以下是主要要求- 可以从MATLAB调用Windows窗体即C#应用程序 如果uses在Windows窗体中执行任何操作,窗体应该能够调用该方法并将参数传递给MATLAB工具箱。表单也应该能够获得MATLAB返回的数据 此外,如果用户在MATLAB中修改数据/参数,则应在Windows窗体中反映出来 从Google搜索中,我得到了大量的结果,可以使

我有一个第三方MATLAB工具箱,它可以对一组数据执行一些计算。我正在用C#设计一个基于Windows窗体的应用程序,以将其与MATLAB工具箱集成。以下是主要要求-

  • 可以从MATLAB调用Windows窗体即C#应用程序
  • 如果uses在Windows窗体中执行任何操作,窗体应该能够调用该方法并将参数传递给MATLAB工具箱。表单也应该能够获得MATLAB返回的数据
  • 此外,如果用户在MATLAB中修改数据/参数,则应在Windows窗体中反映出来

  • 从Google搜索中,我得到了大量的结果,可以使用COM方法从MATLAB调用C#应用程序。我正在寻找MATLAB和C#之间的双向通信。请注意,沟通应该尽可能快。

    我已经尝试过做一些与此相关的事情,您可以看到我在中找到的解决方案。最终,如果您计划在两个程序之间进行任何有意义的交互,您将不得不使用COM。我已经研究过UIAutomation,但不幸的是Matlab没有提供任何您可以使用的东西

    要单独回答您的问题,请执行以下操作:

  • 使用shell escape调用C#应用程序应该非常简单。您的应用程序应该支持命令行参数,或者使用某种互操作将任何内容传递给正在运行的应用程序实例(请参见3)
  • 这也是可行的。有关如何与C#中运行的Matlab实例进行互操作,请参见链接问题
  • 这将是最困难的部分。您必须在应用程序中编写自己的COM服务器,并在Matlab中创建COM客户端,以便与应用程序进行互操作。但这不是自动的,因为用户必须键入某种命令才能从Matlab启动互操作。我能想到的使之自动化的唯一方法是让你的应用程序在固定的时间间隔内使用COM轮询Matlab的工作区,并找出是否有任何变化(既不简单也不高效)

  • 结论是什么?这通常是太多的工作要麻烦了,你最好只写一个MatlabGUI。如果您需要.NET framework的任何功能,只需使用即可。

    请提供任何建议或方法