Main Content

将大型结构体作为输入参数传递

如果您为接受大型结构体(例如,包含矩阵作为字段的结构体)作为输入参数的 MATLAB® 函数生成一个 MEX 函数,则该 MEX 函数可能无法加载。发生此加载失败的原因是,当您从具有输入参数的 MATLAB 函数生成 MEX 函数时,代码生成器会在堆栈上为这些输入参数分配内存。要避免此问题,请通过引用 MATLAB 函数来传递结构体。例如,如果原始函数签名是:

y = foo(a, S)

其中 S 是结构体输入,则将函数重写为:

[y, S] = foo(a, S)