从emxArray_real_T中获取数据

时间:2015-10-06 16:43:34

标签: c++ matlab matlab-coder codegen

我已使用Matlab编码器转换a simple code to C++。但是,我的主要问题是我无法得到它的输出!如何将输出的emxArray_real_T类型转换为C ++数组并打印出来?

1 个答案:

答案 0 :(得分:1)

  

动态分配数组的C代码接口

     

在生成的代码中,MATLAB将动态分配的数据表示为   结构类型称为emxArray。 MATLAB的可嵌入版本   mxArray,emxArray是一系列数据类型,专门针对所有人   基础类型。 emxArray结构定义

typedef struct emxArray_<baseTypedef> {
    <baseType> *data;
    int *size;
    int allocatedSize;
    int numDimensions;
    boolean_T canFreeData; 
} emxArray_<baseTypedef>;
     

baseTypedef是rtwtypes.h中对应的预定义类型   基本类型。例如,以下是base的emxArray的定义   输入带有未知上限的double:

typedef struct emxArray_real_T {
    double *data;    //<<<<<<<<<<<<<<< RIGHT HERE
    int *size;
    int allocatedSize;
    int numDimensions;
    boolean_T canFreeData; 
} emxArray_real_T;
     

对应于double的预定义类型是real_T。更多   关于内置数据类型与内容之间的对应关系的信息    rtwtypes.h

中的预定义类型

http://www.mathworks.com/help/fixedpoint/ug/c-code-interface-for-unbounded-arrays-and-structure-fields.html?refresh=true