算法设计基础知识
有关代码生成以及所生成代码的行为的算法设计注意事项
通过从 MATLAB® 算法中生成代码,您可以完全在 MATLAB 工作区内设计、实现和测试软件。您可以:
验证您的算法是否适用于代码生成
自动生成高效、可读、紧凑的 C/C++ 代码,消除手动转换并最大限度地减少在代码中引入错误的风险。
根据桌面和嵌入式应用程序的具体要求(如数据类型管理、内存使用量和速度),在 MATLAB 代码中修改您的设计。
测试生成的代码,轻松验证修改后的算法是否与原始 MATLAB 算法等效。
生成 MEX 函数以加速 MATLAB 算法或加快定点 MATLAB 代码的执行速度。
从 MATLAB 代码生成硬件描述语言 (HDL)。
函数
coder.allowpcode | 从 P 代码文件控制代码生成 |
coder.ceval | 从生成的代码中调用 C/C++ 函数 |
coder.cinclude | 在生成的代码中包括头文件 |
coder.cstructname | 在生成代码中命名 C 结构体类型 |
coder.extrinsic | 将函数声明为外部函数,并在 MATLAB 中执行它 |
coder.inline | 控制生成代码中当前函数的内联 |
coder.inlineCall | Inline called function in generated code (自 R2024a 起) |
coder.load | 从 MAT 文件或 ASCII 文件加载编译时常量 |
coder.nonInlineCall | Prevent inlining of called function in generated code (自 R2024a 起) |
coder.nullcopy | 在代码生成中声明未初始化的变量 |
coder.opaque | 在生成的代码中声明变量 |
coder.ref | 指示要按引用传递的数据 |
coder.screener | 确定函数是否适合代码生成 |
coder.rref | 指示要按引用传递的只读数据 |
coder.target | 确定代码生成目标是否为指定的目标 |
coder.unroll | 通过为每次循环迭代生成循环体的副本来展开 for 循环 |
coder.varsize | 声明可变大小数据 |
coder.wref | 指示要按引用传递的只写数据 |
coder.updateBuildInfo | Update RTW.BuildInfo build information object |
类
coder.ExternalDependency | Interface to external code |
coder.BuildConfig | 代码生成期间的编译上下文 |
主题
- 可从 MATLAB 算法生成代码的情况
决定是否为您的应用程序生成代码。
- 使用合适的代码生成功能
为您的应用程序选择代码生成功能。
- 从 MATLAB 生成 C/C++ 代码的前提条件
从 MATLAB 代码生成代码需要 MATLAB Coder™ 产品和 C/C++ 编译器。
- 生成的代码和 MATLAB 代码之间的差异
生成的 C/C++ 代码的行为可能与原始的 MATLAB 源代码不同。
- 代码生成就绪工具
代码生成就绪工具会筛查 MATLAB 代码中是否存在代码生成不支持的功能和函数。
- Check Code Using the Code Generation Readiness Tool
Run the code generation readiness tool at the command line or from the current folder browser.
- 支持 C/C++ 代码生成的 MATLAB 语言功能
使用代码生成支持的 MATLAB 语言功能和函数。
- 针对代码生成的 MATLAB 代码设计注意事项
为代码生成编写 MATLAB 代码时,请注意相关限制。
疑难解答
Unknown Output Type for coder.ceval
Define the output type for external C/C++ function calls.