【问题标题】:Two way communication between MATLAB and C#MATLAB和C#之间的两种通信方式
【发布时间】:2015-03-19 05:43:17
【问题描述】:

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

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

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

【问题讨论】:

  • 请有任何建议或方法

标签: c# matlab


【解决方案1】:

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

单独解决您的问题:

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

结论?这通常是太多的工作,而您最好只编写一个 Matlab GUI。如果您需要 .NET 框架的任何功能,您只需使用 Matlab's .NET interface

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    相关资源
    最近更新 更多