我经常通过在 mex 中实现来优化一些 matlab 例程。
到目前为止这工作正常 - 但每当创建返回 mxArray
时,它都会在我使用 mxCreateNumericArray
构建它时进行预初始化。
在我的大部分工作中,我不需要预先分配内存(归零)。太伤心了 - 我找不到用于该目的的匹配命令(分配内存而不清零)。
所以我的问题可以用两种方式回答:
- 我必须调用哪个命令来创建
mxArray
而不将内容清零? - 如何在不为
Pr
(和Pi
)字段分配内存的情况下构建一个mxArray
,稍后我将通过分配内存>mxMalloc
.
一个想法是构建大小为 (0,0) 的数组 - 但这是最终的解决方案吗?
最佳答案
我想,构建大小为 (0,0) 的矩阵非常接近于一种“空”构造函数。
之后,您必须使用 mxMalloc
或 mxRealloc
调整数组的大小。
我怀疑这会带来显着的性能提升,除非您处理的是非常大的数组。
关于matlab - 创建 mxArray *没有*内存分配/初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20488818/