c - Matlab编码器: Matlab Array to C Array

标签 c matlab matlab-coder

我使用 matlab 编码器将 matlab 代码转换为 C。我在 matlab 中定义的简单数组在 C 中转换为复杂的结构。

struct emxArray_real_T
{
  double *data;
  int *size;
  int allocatedSize;
  int numDimensions;
  boolean_T canFreeData;
};

如果有人能阐明如何使用这个结构,那将很有帮助。

最佳答案

emxArray_real_T 类型的创建是因为 MATLAB Coder 无法确定固定大小或 MATLAB 中数组大小的足够小的边界,例如 2x3。在这种情况下,生成的代码允许数组的大小在运行时通过使用动态内存分配(例如 malloc)和此数据结构来表示您在 C 中的 MATLAB 数组。这些称为动态分配的变量MATLAB Coder 文档中的大小数组和结构字段用于跟踪生成的代码中动态分配的内存。

关于使用此类数组,documentation @horchler 推荐的是一个很好的起点。另外,你可以看看这个 other answer它描述了当存储的数据是 uint32 而不是 doublereal_T 时使用相同 struct 的基础知识你的情况。

关于c - Matlab编码器: Matlab Array to C Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32303282/

相关文章:

c - 将程序返回到主菜单

c - 纯C语言中auto关键字的原因是什么?

matlab - 为所有函数生成“M-Lint 无法确定 <name> 是变量还是函数并假定它是函数”警告

使用 Matlab Coder 将 C char 数组转换为 Matlab 字符串

无法从 Matlab Coder 创建 .dll

c++ - 如何用c语言翻译openssl命令pbkdf2?

c - 编译器是否为最大的代码块或 C 中的所有 block 保留内存?

performance - 如何减少 Hartley 变换的 for 循环?

matlab - 计算 36×36 矩阵的 Jordan 形式的解释错误

c - 由 Matlab Coder 生成的名为 i386 的变量