External Interfaces Reference Previous page   Next Page
mxSetNzmax

Set storage space for nonzero elements

C Syntax

Arguments

array_ptr
   Pointer to a sparse mxArray.

nzmax
   The number of elements that mxCreateSparse should allocate to hold the arrays pointed to by ir, pr, and pi (if it exists). Set nzmax greater than or equal to the number of nonzero elements in the mxArray, but set it to be less than or equal to the number of rows times the number of columns. If you specify an nzmax value of 0, mxSetNzmax sets the value of nzmax to 1.

Description

Use mxSetNzmax to assign a new value to the nzmax field of the specified sparse mxArray. The nzmax field holds the maximum possible number of nonzero elements in the sparse mxArray.

The number of elements in the ir, pr, and pi (if it exists) arrays must be equal to nzmax. Therefore, after calling mxSetNzmax, you must change the size of the ir, pr, and pi arrays. To change the size of one of these arrays:

  1. Call mxCalloc, setting n to the new value of nzmax.
  2. Call the ANSI C routine memcpy to copy the contents of the old array to the new area allocated in Step 1.
  3. Call mxFree to free the memory occupied by the old array.
  4. Call the appropriate mxSet routine (mxSetIr, mxSetPr, or mxSetPi) to establish the new memory area as the current one.

Two ways of determining how big you should make nzmax are

Examples

See mxsetnzmax.c in the mx subdirectory of the examples directory.

See Also

mxGetNzmax


Previous page  mxSetName (Obsolete) mxSetPi Next page

© 1994-2005 The MathWorks, Inc.