1

我的主要目标是将用 matlab(.m) 编写的代码与另一个 c# 应用程序集成。我考虑了2个选项:

  1. 使用 Matlab Builder NE
    • 优点:用着用!
    • 缺点:需要我目前没有的许可证($$)。需要在最终用户 PC 上安装 MCR。
  2. 从 .m 文件生成独立的 EXE 文件
    • 优点:不需要任何东西来运行。
    • 缺点:新手很难使用。不支持所有功能。

到目前为止,我正在尝试对选项 2) 进行“概念证明”,但没有成功。我什至不知道如何开始我的问题;一旦我对工具箱有了更多的了解,我就会改进我的问题。如果问题不符合标准,请通知我。

  1. Matlab Coder、Real-Time Workshop(RTW)和RTW Embedded Coder之间有什么关系?我确定我有两个 RTW 许可证,但我不确定我是否有“Matlab Coder”
  2. 我正在尝试使用“emlc”命令生成 EXE。这是正确的命令吗?我无法让它工作。我正确生成了 C/C++ 代码,但没有生成 EXE(我已经配置了 MEX 设置)
  3. 由“emlc”生成的 C/C++ 代码可以导入 Visual Studio 以编译和构建 EXE?是不是超级简单?
  4. “Emlc”属于哪个工具箱?
  5. %#codegen 指令代表什么?
  6. 想象一下,我在一个 .m 文件中有 2 个函数(函数 A、函数 B)。还想象一下,我能够生成 EXE。exe的入口点是什么?是functionA还是functionB?如何定义数据类型?
4

2 回答 2

3

MATLAB Coder 是一个相对较新的产品,它允许您从 MATLAB 生成 C 代码,而无需使用 Simulink。在此之前,您需要 Simulink 和 Real-Time Workshop(即使您没有使用 Simulink)从 MATLAB 生成 C 代码emlc. MATLAB Coder 发布时,Real-Time Workshop 更名为 Simulink Coder,Real-Time Workshop Embedded Coder 更名为 Embedded Coder。MATLAB/Simulink Coder 和 Embedded Coder 之间的区别在于“基本”编码器产品允许生成功能正确的代码,但该代码并未针对实时性能进行优化,也未针对特定编码标准进行定制。Embedded Coder 允许您优化和自定义 MATLAB 和 Simulink Coder 生成的代码。如果您拥有 RTW 许可证,那么您将在 MATLAB Coder 发布时获得免费许可证,因为 MATLAB Coder 是 Simulink Coder 的先决条件。

我相信emlc属于 MATLAB Coder。MATLAB Coder 生成的代码可以在 Visual Studio 中导入和编译。我不知道它实际上有多容易,但是有一个名为“Pack N Go”的功能应该使这个过程更容易,检查一下。还有一个 Visual Studio 目标,但不确定这是否在基本 MATLAB Coder 中,或者您是否还需要 Embedded Coder。

于 2013-10-10T13:39:11.700 回答
2

参考6):

入口点将与 MATLAB 中的相同 - 因此,在 m 文件中定义的第一个函数。命令行参数都将作为字符串传递给这个函数。

于 2013-10-10T14:18:46.857 回答