比尔•周MathWorks
生成可读和可移植的C和c++代码从MATLAB®代码,包括超过1200个函数用于从图像处理和计算机视觉应用先进的DSP和通信系统的发展,使用MATLAB编码器™。
这段视频显示了生成C代码的流程通过使用MATLAB的卡尔曼滤波器设计。
MATLAB编码器生成可读和可移植的C代码从MATLAB算法。这种自动化的方法加速你的设计工作流程和消除手动翻译过程引入的编码错误。
MATLAB编码器支持大多万博1manbetx数的MATLAB语言和超过1200个函数从一个广泛的工具箱用于从图像处理和计算机视觉应用先进的DSP和通信系统的发展。为了说明工作流,我将使用一个卡尔曼滤波器为例数值算法。
卡尔曼滤波DOTM文件,你看到的是稍微修改的版本附带MATLAB编码器。此外,我有一个简单的测试台上,被输入,运行卡尔曼滤波器,情节图。虽然我有两个文件,我只是感兴趣的生成代码的算法。
回到算法,注意我预分配矩阵像和h。这是其中的一个技巧,帮助生成更好的代码。开始,确保你有英镑比例有说服力的编译指示文件的顶部。编译指示允许额外的热电联产检查代码分析器,它是一个工具MATLAB内置编辑器。
看看代码分析器在右上角,我们看到它的标记几件事情。第一件事是,我们需要完成语句以分号结尾。让我们解决这个问题。
这里的括号是不必要的。所以我们可以删除它。第三,MATLAB编码器目前不支持try - catch结构。万博1manbetx现在让我们删除它。
解决这些事以后,代码分析器是绿色的我们好了。从这里我们去启动MATLAB编码器应用。在这儿,在热电联产类别。
这是MATLAB编码器应用。和我们要做的第一件事就是告诉它我们想生成代码的文件。从这里,代码生成准备工具进行初步评估和标志之类的东西不支持的功能。万博1manbetx如果你没有问题,你不会看到此屏幕。但在这种情况下,工具是告诉我们,导入数据不支持热电联产。万博1manbetx
我们写了这段代码的调试我们设计算法。因为我们不需要为这个诊断代码生成代码,我们可以评论一下,搬到下一个步骤。现在我们需要定义我们的输入类型。使用C代码时我们需要显式地指定数据类型和大小的输入。
最简单的方法是使用一个试验台,锻炼我们想生成代码的功能。在这种情况下这是卡尔曼滤波器测试台上,我之前给你们。如果我们点击外部定义的输入类型,MATLAB编码器将运行试验台和推断出输入数据类型和大小。
数据,我们的输入数据类型是双two-by-one数组的类型。我们会接受。如果你想,你也可以显式地设置自己的数据类型和大小。移动到下一个步骤,MATLAB编码器将检查运行时生成的代码中的错误。
他们将执行诸如数组边界检查和尺寸检查寻找违规记忆的完整性。在这种情况下,一切都以优异的成绩通过。所以我们可以继续前进。
现在我们准备生成代码。对于我们的输出,我们可以生成源代码,墨西哥人文件、静态或动态库,或一个可执行的。为了简单起见我们继续并生成源代码。我们成功地生成代码。
我启用的选项插入MATLAB代码注释生成C代码,这样更容易追溯。我们这里也有一个头文件。在这一点上有几件事你可以做。你当然可以创建一个墨西哥人文件并把它带回MATLAB用于加速度。您可以调整一些生成选项相关的速度、内存使用和代码外观,然后重新生成代码。你也可以做一些代码验证。
当然,您可以简单地导出生成的代码和使用在其他地方。这是一个快速概述从MATLAB代码生成C代码。看看我们的文档了解更多例子和其他细节。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
本网站使用cookie来提高用户体验,个性化的内容和广告,并分析网站流量。通过继续使用本网站,您同意我们使用cookie。请参阅我们的隐私政策了解更多关于饼干和如何改变你的设置。