基于MatlabCoder的m脚本算法模型代码生成

在网上看到过比较多介绍关于simulink模型代码生成的案例或相关资料,事实上,对于我们做信号处理相关或比较复杂的算法的时候,m脚本用起来更灵活,搭建实现起来更方便。但是使用MatlabCoder来生成工程C/C++代码时应该注意什么呢?

1.输入输出定义,在matlab中平时我们使用一个变量,直接用就可以,使用时即定义和初始化,但是如果模型是需要生成代码的,则在使用时应对参数进行定义及初始化;
2.向量或矩阵的尺寸大小,在模型中涉及到的向量或矩阵应明确其大小尺寸,对于未知大小的向量或矩阵最好在代码中用coder.varsize声明其最大空间;
3.对于结构体数组的使用,结构体数组一定要初始化定义,定义各个元素的数据类型,定义好结构体数组的维度,且需按照可生成代码的结构体形式来定义,注意赋值类型是否一致;
4.实际逻辑上可以通过,但是表面看起来某些路径没有定义某变量的情况 需要注意,MatlabCoder没有那么智能,这些是会报错的;
5.非标量结构体数组访问不支持代码生成;
6.调用内部小函数有可能导致数据类型不一致,从而导致生成代码时报错;
7.matlab中的.* ,MatlabCoder是不识别的,如有使用最好提前自己编写相应的实现函数;

暂时想到了这些,如有其他再补充,生成代码后可用MatlabCoder中的SIL来测试验证一下,会输出对应结果差值,也可以画图出来非常直观。最近Matlab被管制,用了这好些几年的工具可能也要换了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值