c# - Matlab Coder - 从 .m 文件生成 EXE

标签 c# c++ matlab matlab-compiler matlab-coder

我的主要目标是将用 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? super 简单吗?
  4. “Emlc”属于哪个工具箱?
  5. %#codegen 指令代表什么?
  6. 假设我在 .m 文件中有 2 个函数(functionA、functionB)。还想象一下我能够生成 EXE。什么是exe的入口点?它是函数 A 还是函数 B?如何定义数据类型?

最佳答案

MATLAB Coder 是一个相对较新的产品,允许您从 MATLAB 生成 C 代码,而无需使用 Simulink。在此之前,您需要 Simulink 和 Real-Time Workshop(即使您没有使用 Simulink)使用 emlc 从 MATLAB 生成 C 代码。 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。

关于c# - Matlab Coder - 从 .m 文件生成 EXE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19296537/

相关文章:

c# - "this"有什么用?

c# - 更改键盘的按键颜色 WP8

图上的 MATLAB 简单 slider

c# - Linq 避免两次调用函数

c# - 在 ServiceModel 客户端配置部分找不到名称为 'xxxxx' 和契约(Contract)为 'yyy' 的端点元素

c++ - 如何从静态函数调用本地函数?

c++ - SDL_Mixer 崩溃一次;现在所有使用 SDL_Mixer 的程序都会在初始化时崩溃

php - 相同的字符串加盐代码给出不同的结果

image - MATLAB imresize 将光盘上的图像尺寸缩小到一半

matlab - while 循环内有 for 循环