Matlab Coder
matlab Coder 可以将matlab脚本转换为
c
orC++
代码, 极大程度让用户专注算法的设计
- 可以指定接口类型, 但是无法指定中间变量的类型
- 在转换后注意
tmwtypes.h
和rtwtypes.h
的include- 接口参数类型的指定
matlab代码
function [data_MCA] = MultiChannelAverage(data_radar)
% 输入data_radar: numADCSamples * 8
% 输出data_MCA: numADCSamples * 1
data_MCA = mean(data_radar,2);
end
转换完成后的C语言代码
/*
* File: MultiChannelAverage.c
*
* MATLAB Coder version : 5.2
* C/C++ source code generated on : 29-Nov-2022 14:55:50
*/
/* Include Files */
#include "MultiChannelAverage.h"
/* Function Definitions */
/*
* 输入data_radar: numADCSamples * 8
* 输出data_MCA: numADCSamples * 1
*
* Arguments : const cint16_T data_radar[1024]
* creal_T data_MCA[128]
* Return Type : void
*/
void MultiChannelAverage(const cint16_T data_radar[1024], creal_T data_MCA[128])
{
double ai;
double im;
double re;
int data_radar_re_tmp;
int k;
int xj;
int xoffset;
for (xj = 0; xj < 128; xj++) {
[xj].re = data_radar[xj].re;
data_MCA[xj].im = data_radar[xj].im;
data_MCA}
for (k = 0; k < 7; k++) {
= (k + 1) << 7;
xoffset for (xj = 0; xj < 128; xj++) {
= xoffset + xj;
data_radar_re_tmp [xj].re += (double)data_radar[data_radar_re_tmp].re;
data_MCA[xj].im += (double)data_radar[data_radar_re_tmp].im;
data_MCA}
}
for (xj = 0; xj < 128; xj++) {
= data_MCA[xj].re;
im = data_MCA[xj].im;
ai if (ai == 0.0) {
= im / 8.0;
re = 0.0;
im } else if (im == 0.0) {
= 0.0;
re = ai / 8.0;
im } else {
= im / 8.0;
re = ai / 8.0;
im }
[xj].re = re;
data_MCA[xj].im = im;
data_MCA}
}
/*
* File trailer for MultiChannelAverage.c
*
* [EOF]
*/