IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 使用 MATLAB Coder App生成MEX函数 -> 正文阅读

[开发工具]使用 MATLAB Coder App生成MEX函数

目录

使用?MATLAB?Coder?App 生成 MEX 函数的工作流

使用?MATLAB?Coder?App 生成 MEX 函数

配置工程设置

编译?MATLAB?Coder?工程


使用?MATLAB?Coder?App 生成 MEX 函数的工作流

步骤操作详细信息
1

设置?MATLAB??Coder??工程。

设置MATLAB Coder工程
2

指定编译配置参数。将?Build type?设置为 “MEX”。

配置工程设置
3

编译工程。

编译MATLAB Coder工程

????????MATLAB Online??不支持?MATLAB Coder?App。要在?MATLAB Online?中生成 MEX 函数,可以使用codegen命令。

使用?MATLAB?Coder?App 生成 MEX 函数

????????该例子说明如何使用?MATLAB Coder?App 从 MATLAB 代码生成 MEX 函数。

创建入口函数

????????在一个本地可写文件夹中,创建 MATLAB 文件 mcadd.m,其中包含:

function y = mcadd(u,v) %#codegen
y = u + v;

创建测试文件

????????在同一本地可写文件夹中,创建 MATLAB 文件 mcadd_test.m,该文件调用具有示例输入的 mcadd。示例输入是类型为 int16 的标量。

function y = mcadd_test
y = mcadd(int16(2), int16(3));

打开?MATLAB?Coder?App

????????在 MATLAB 工具条的?App?选项卡上,点击Code Generation下的MATLAB Coder?App图标。该App会打开Select Source Files页面。

指定源文件

  1. Select Source Files页面中,键入或选择入口函数 mcadd 的名称。

    该 App 将使用默认名称 mcadd.prj 创建一个工程。

  2. 点击?Next?以转到?Define Input Types?步骤。该 App 将分析函数以查找编码问题并确定代码生成就绪情况。如果 App 发现问题,它将打开?Review Code Generation Readiness?页面,可以在其中查看和解决问题。在此示例中,由于 App 没有检测到问题,因此将打开?Define Input Types?页面。

定义输入类型

????????由于C使用静态类型,MATLAB Coder?必须在编译时确定 MATLAB 文件中所有变量的属性。必须指定所有入口函数输入的属性。根据入口函数输入的属性,MATLAB Coder?可以推断 MATLAB 文件中所有变量的属性。

????????指定 MATLAB Coder 用来自动定义 u 和 v 的类型的测试文件 mcadd_test.m:

  1. 输入或选择测试文件 mcadd_test.m。

  2. 点击?Autodefine Input Types

    测试文件 mcadd_test.m 使用示例输入类型调用入口函数 mcadd。MATLAB Coder推断输入 u和v为 int16(1x1)。

  3. 点击Next以转到Check for Run-Time Issues步骤。

检查运行时问题

????????Check for Run-Time Issues?步骤从入口函数生成 MEX 文件,然后运行MEX函数并报告问题。此步骤是可选的。不过,建议最好执行此步骤。可以检测并解决在生成的C代码中更难诊断出来的运行时错误。

  1. 要打开?Check for Run-Time Issues对话框,请点击?Check for Issues?箭头?

    App使用mcadd_test 填充测试文件字段,该测试文件用于定义输入类型。

  2. 点击?Check for Issues

    App 将生成一个 MEX 函数。它运行测试文件,将对 mcadd 的调用替换为对 MEX 函数的调用。如果 App 在 MEX 函数生成或执行过程中检测到问题,它将提供警告和错误消息。可以点击这些消息,导航到有问题的代码并修复问题。在本示例中,App 未检测到问题。

  3. 点击?Next?以转到?Generate Code?步骤。

生成 MEX 函数

  1. 要打开?Generate?对话框,请点击?Generate?箭头?

  2. 在?Generate?对话框中,将?Build type?设置为?“MEX”,将?Language?设置为C。对其他工程编译配置设置使用默认值。

  3. 点击?Generate

    App 指示代码生成成功。它在页面左侧显示源 MATLAB 文件和生成的输出文件。在?Variables?选项卡上,它显示有关 MATLAB 源变量的信息。在?Target Build Log?选项卡上,它会显示编译日志,包括编译器警告和错误。

    MATLAB Coder 编译工程,并默认在当前文件夹中生成 MEX 函数 mcadd_mex。MATLAB Coder 还会在名为 codegen/mex/mcadd 的子文件夹中生成其他支持文件。MATLAB Coder 使用 MATLAB 函数的名称作为生成文件的根名称。它为 MEX 文件创建一个特定于平台的扩展名。

  4. 要查看代码生成报告,请点击?View Report

  5. 点击?Next?打开?Finish Workflow?页面。

查看 Finish Workflow 页面

????????Finish Workflow?页面指示已成功生成代码,还提供工程摘要以及指向生成的输出的链接。

配置工程设置

要打开工程设置对话框,请执行下列操作:

  1. 要打开?Generate?对话框,请点击?Generate?箭头?

  2. 点击?More settings

????????要更改工程设置,请点击包含要更改的设置的选项卡。例如,要更改?Saturate on integer overflow?设置,请点击?Speed?选项卡。

????????MEX 函数使用一组与库和可执行文件不同的配置参数。将输出类型从 “MEX Function” 更改为 “Source Code ”“Static Library”、“Dynamic Library” 或 “Executable” 时,请验证这些设置。

????????某些配置参数与 MEX 和独立代码生成相关。如果在输出类型为 “MEX Function” 时启用这些参数中的任何参数,并且要在 C/C++ 代码生成中也使用相同的设置,则必须为 “C/C++ Static Library”、“C/C++ Dynamic Library” 和 “C/C++ Executable” 再次启用它。

编译?MATLAB?Coder?工程

????????要使用指定的设置编译工程,请在?Generate Code?页面上点击?Generate。当?MATLAB Coder?App 编译工程时,它会显示编译进度。编译完成后,App 会在?Target Build Log?选项卡上提供有关编译的详细信息。

????????如果启用了代码生成报告或发生编译错误,则 App 会生成报告。该报告提供有关最近编译的详细信息,并提供指向该报告的链接。

????????要查看报告,请点击?View report?链接。该报告提供指向 MATLAB 代码和生成的 C/C++ 文件的链接,并提供 MATLAB 代码中变量的编译时类型信息。如果发生编译错误,报告将列出错误和警告。

另请参阅

  • 配置编译设置

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:45:36  更:2022-03-08 22:46:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:44:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码