主要内容

mxSetNzmax (C和Fortran)

设置为非零元素的存储空间

C语法

#包括“矩阵。h”空白mxSetNzmax (mxArray *点,mwSize nzmax);

Fortran语言的语法

# include“fintrf。nzmax h”子例程mxSetNzmax (pm)下午mwPointer mwSize nzmax

参数

指针指向一个稀疏mxArray

nzmax

的元素数量mxCreateSparse分配的数组指向红外,公关,π(如果它存在的话)。集nzmax大于或等于非零元素的个数mxArray,但将其设置为小于或等于列数的行数倍。如果你指定一个nzmax的价值0,然后mxSetNzmax设置的值nzmax1

描述

使用mxSetNzmax分配一个新的价值nzmax指定的稀疏mxArray。的nzmax领域拥有非零元素的最大数量稀少mxArray

元素的数量红外,公关,π(如果它存在的话)必须等于数组nzmax。因此,在调用之后mxSetNzmax,你必须改变的大小红外,公关,π数组。改变其中一个数组的大小:

  1. 调用mxRealloc指向数组的指针,设置新值的大小nzmax

  2. 调用合适的mxSet例程(mxSetIr,mxSetDoubles,或mxSetComplexDoubles)建立新的内存区域。

方法来确定多大nzmax是:

  • nzmax等于或略大于非零元素的数量在一个稀疏mxArray。这种方法节约宝贵的堆空间。

  • 使nzmax等于元素的总数mxArray。这种方法消除了(或者,至少减少)昂贵的重新分配。

例子

看到这些例子matlabroot走读生/ / mx例子:

版本历史

之前介绍过的R2006a

另请参阅

|