matlab - 创建 mxArray *没有*内存分配/初始化

标签 matlab memory-management initialization mex

我经常通过在 mex 中实现来优化一些 matlab 例程。 到目前为止这工作正常 - 但每当创建返回 mxArray 时,它都会在我使用 mxCreateNumericArray 构建它时进行预初始化。
在我的大部分工作中,我不需要预先分配内存(归零)。太伤心了 - 我找不到用于该目的的匹配命令(分配内存而不清零)。

所以我的问题可以用两种方式回答:

  1. 我必须调用哪个命令来创建 mxArray 而不将内容清零?
  2. 如何在不为 Pr(和 Pi)字段分配内存的情况下构建一个 mxArray,稍后我将通过 分配内存>mxMalloc.

一个想法是构建大小为 (0,0) 的数组 - 但这是最​​终的解决方案吗?

最佳答案

我想,构建大小为 (0,0) 的矩阵非常接近于一种“空”构造函数。 之后,您必须使用 mxMallocmxRealloc 调整数组的大小。

我怀疑这会带来显着的性能提升,除非您处理的是非常大的数组。

关于matlab - 创建 mxArray *没有*内存分配/初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20488818/

相关文章:

debugging - 查找在复杂程序中创建命令行输出的位置

objective-c - 我应该将我的事件指标发布声明放在 dealloc 中吗?

c# - 构造函数初始化优化?

c++ - 分配的内存块应该按什么顺序被释放?

perl - Perl 中的数组初始化

swift - 在 Swift 3 中强制执行特定的初始化程序

matlab - 生成具有向量集/对的组合矩阵

matlab - 如何在 MATLAB 中将 '1*1 char' 转换为逻辑向量?

string - 将字符串与 matlab 中的字符串元胞数组进行比较并找到最相似的

iphone - NSMutableArray-内存管理