从emxArray_real_T中获取数据

Get the data out of the emxArray_real_T

本文关键字:获取 数据 real emxArray      更新时间:2023-10-16

我使用Matlab编码器将简单的代码转换为c++。然而,我的主要问题是我无法得到它的输出!我如何将输出转换为emxArray_real_T类型到c++数组并打印它?

动态分配数组C代码接口

在生成的代码中,MATLAB将动态分配的数据表示为a结构类型称为emxArray。一个可嵌入的MATLAB版本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