MATLAB 代码自动生成(一) floating is out of range 以及神秘变量scale = 3.3121686421112381E-170

在将MATLAB代码转换为TI DSP TMS320F28335的C代码时遇到浮点数超出范围错误。通过分析生成的C代码发现scale变量赋值超出double类型最小值。研究TI的float.h头文件并考虑两种解决方案:定位并修复生成代码的源问题,或直接修改scale值。选择第一种方法,通过MATLAB的生成代码报告找到rank函数导致的另一个错误,由于rank函数在稀疏矩阵时不支持生成代码,注释掉该函数后成功编译。
摘要由CSDN通过智能技术生成

在使用机器人最小惯性参数集计算机器人的力矩时,使用MATLAB自动生成代码到TI的DSP TMS321F28335的时候,发现编译不通过,提示如下错误:
在这里插入图片描述
主要错误原因是浮点是超出界限,本着按图索骥的精神,打开生成的C代码进行查看,发现是这里的:
scale = 3.3121686421112381E-170;

/* Function for MATLAB Function: '<S1>/MATLAB Function' */
static real_T MyThing_norm(const real_T x[3])
{
   
  real_T y;
  real_T scale;
  real_T absxk;
  real_T t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值