matlab转C语言的操作步骤(2)——同时转多个多函数+变量类型设置

如果变量类型设置错误,在转C时,会出现以下报错:

Error using XX_mex (line 0)
Incorrect class for expression 'studentHeight': expected 'single' but found 'double'.

或者报这个错:

This assignment writes a 'double' value into a 'single' type. Code generation does not support changing types through assignment. Check preceding assignments or input type specifications for type mismatches.

意思是说,你期望把studentHeight这个变量在C语言中转成float,但是matlab源代码中studentHeight的类型却是double,这是不允许的。

解决方案也很简单,直接把报错的变量的类型在matlab中就定义为float即可,例如:studentHeight = single([1.72 1.80]);其余解决方案,详见下文。

 

一、同时把多个matlab函数转成C语言函数

要实现这一功能,那么我们要把所有想转的matlab函数,都写成一个独立的文件。然后如下图所示:点击添加新的函数->并选择函数文件.m即可。

 

 

二、转成的C语言浮点变量为double还是float?

常用的设置有两种:1、和matlab源代码中变量的类型保持一致,2、全部都用float。细节如下图所示:

1、上图中,如果设置成none,那么转成的C代码中的变量类型,会和matlab源代码中的变量类型保持一致,matlab中变量的类型可以在工作区查看,如下图:

附:如何在matlab代码中设置变量类型?
答:在matlab中,变量的默认类型一般是double(除了某些内置函数的返回值,可能是整形或者bool等),手动设置类型,可以这么写:
a=[1 2 3 4];%a为double类型
b=single([1 2 3 4]);%b为float类型

2、设置转C语言的变量全部为float

这种设置时,matlab中的double变量转成C语言时,会被自动改成float,这对于ram紧张的嵌入式设备,非常有用。

 

 

三、修改m文件后,重新生成C代码的步骤

修改m文件后,很有可能m文件的函数的形参的尺寸会发生变化,因此,建议按以下步骤进行:

1、先重新自动检测一下变量类型(其实是类型及其尺寸)

2、清除之前的生成,再check

3、genreate

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>