1

我已经使用 Matlab 编码器将一个简单的代码转换为 C++ 。但是,我的主要问题是我无法获得它的输出!如何将 emxArray_real_T 类型的输出转换为 C++ 数组并打印?

4

1 回答 1

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 中与 baseType 对应的预定义类型。例如,下面是具有未知上限的基本类型 double 的 emxArray 的定义:

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

于 2015-10-06T16:51:52.303 回答