比尔周,MathWorks公司
产生可读和便携式C和从MATLAB C ++代码®代码,包括用于应用范围从图像处理和计算机视觉,以先进的DSP和通信系统发展超过1200的功能,使用MATLAB编码器™。
该视频显示通过使用卡尔曼滤波器在MATLAB设计的生成C代码的工作流程。
MATLAB编码器从MATLAB算法生成可读和可移植的C代码。这种自动化的方法加速您的设计流程,并消除编码通过手动转换过程中引入的误差。
MATLAB编码器支持大多金宝app数MATLAB语言和从广泛的工具箱1200的功能用于应用范围从图像处理和计算机视觉,以先进的DSP和通信系统的发展。为了说明的工作流程,我打算使用卡尔曼滤波器作为例子数值算法。
你在这里看到的卡尔曼滤波器DOTM文件稍微偏离修正版附带的MATLAB编码器。另外,我有一个简单的测试平台,其获取输入,运行卡尔曼滤波器,并绘制它的图形。虽然我有两个文件,我只是在生成代码的算法感兴趣。
回来的算法,请注意我的预分配如A矩阵和H.这是有助于生成更好的代码的招数之一。要开始了,要确保你有你的文件的顶部百分比英镑切实编译。编译指示使在代码分析仪,它是内置于MATLAB编辑器工具的其他联产检查。
考虑看看在右上角的代码分析器,我们看到它的标记几件事情。的第一件事是,我们需要用分号完整的语句。因此,让我们解决这个问题。
而在这里用括号这是不必要的。因此,我们可以将其删除。第三,MATLAB编码器目前不支持的try-catch构造。金宝app因此,让我们删除它现在。
解决这些事以后,代码分析器是绿色的,所以我们是好去。从这里,让我们去和启动MATLAB编码器应用程序。这是,根据联产类别。
这里的MATLAB编码器应用程序。而我们要做的第一件事就是告诉它我们要生成代码的文件。从这里,代码生成工具准备像做不支持的功能进行初步评估和标志的东西。金宝app如果你有任何问题,你实际上就不会看到这个画面。但是,在这种情况下,工具告诉我们,导入数据不支持热电联产。金宝app
我们写的代码,这个块用于调试目的,因为我们在设计算法。而且,由于我们不需要生成此诊断代码代码,我们可以把它注释掉并移动到下一个步骤。现在,我们需要定义我们的输入类型。当C代码的工作,我们需要明确指定数据类型和我们投入的大小。
要做到这一点,最简单的方法是使用一个测试台是行使我们要生成代码的功能。在这种情况下,这是卡尔曼滤波器试验台上,我教你的。如果我们点击外定义的输入类型,MATLAB编码器将运行测试平台,并推断出输入的数据类型和大小。
它计算出,我们的输入数据类型是两个由一个阵列型的两倍。因此,我们将接受。如果你愿意,你也可以明确设置数据类型和大小自己。移动到下一个步骤,MATLAB编码器将在生成的代码来检查运行时错误。
他们将执行之类的东西数组边界检查和尺寸检查,以寻找违反内存完整性。在这种情况下,一切都出色地通过。因此,我们可以继续前进。
现在,我们已经准备好来生成代码。对于我们的输出,我们可以生成源代码,MEX文件,静态或动态库或可执行文件。为了简单起见,让我们继续并生成源代码。所以我们刚才生成的代码成功。
我启用插入MATLAB代码生成的C代码,以便它更容易追溯评论的选项。我们也有一个头文件在这里。在这一点上有一对夫妇的事情可以做。你当然也可以创建一个MEX文件,并把它带回MATLAB加速的目的。你可以根据相关的速度,内存使用和代码外观,然后重新生成代码的生成选项调一些。你也可以做一些代码验证。
当然,你可以简单地导出生成的代码和其他地方使用它。这是从MATLAB代码生成C代码的简要概述。看看我们的更多的例子和其他详细信息的文档。
您还可以选择从下面的列表中的网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。