这里介绍的方法是使用脚本命令来输出C代码,具体生成脚本命令如下:
codgen fcn -args {s} -config:lib -report
fcn:指代的是matlab function 的名称
s:指代的是matlab function 的参数
-config:lib:指代生成的是类似于静态库的c代码
-report:可以让matlab输出报告,里面包含了生成的C代码,和基本的使用例程。
在report的界面的工具栏上会有一个package打包的按钮,在执行命令生成完代码后的report界面里点击该按钮可以将整个生成的代码打包出来,包括没有显示一些依赖关系等。


由于Matlab和C语言在处理函数和一些变量上存在一些区别,可能会导致生成代码失败,有如下的几点建议:
1、定义好matlab的函数的输入
2、在matlab函数中使用数组一定要定义好数组的大小
3、根据输出报告检查生成的代码是不是想要的
在更改完能输出C代码后,需要再次运行matlab确定输出结果是满足需求的。
综上已经可以从matlab生成C语言代码,但是也可以同时代码生成mex函数,mex函数可以直接在Matlab和C语言环境直接运行。
用如下语句
codegen fcn -args {s} -report
然后调用mex函数 x = fcn_mex(y);但是mex函数只能s的变量大小,不一致会提示故障。
matlab存在输入的灵活性,所以转化成C语言的代码时会存在问题,所以有两种方式来确定C语言函数的输入,一个按最大的大小控制输入,另一个方式是输入变量时同时输入大小
创建变量类型 coder.newtype("class",size,isVariable)
class:是指的C语言的数据类型,size按照格式[1 2]代表1行两列的数组,isVariable就是[0 1]
然后再用整个变量类型去生成C语言的代码。
matlab生成C语言代码有两种主要的方式,一个是提高阅读性(代码量较大,运行时间较长),另一种是提高运行效率(代码量小,运行时间短,阅读性差)
用整个语句可以显示,cfg = coder.config("lib"),然后自己手动调整生成代码的配置。
执行该命令生成C语言代码 codegen detecctpH -args {myargs} -config cfg -report
1万+

被折叠的 条评论
为什么被折叠?



