我已使用Matlab编码器转换a simple code to C++。但是,我的主要问题是我无法得到它的输出!如何将输出的emxArray_real_T类型转换为C ++数组并打印出来?
答案 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
中的预定义类型