exponenta event banner

mxSetNzmax (C и Fortran)

Задать пространство хранения для ненулевых элементов

Синтаксис C

#include "matrix.h"
void mxSetNzmax(mxArray *pm, mwSize nzmax);

Синтаксис Фортрана

#include "fintrf.h"
subroutine mxSetNzmax(pm, nzmax)
mwPointer pm
mwSize nzmax

Аргументы

pm

Указатель на разреженный mxArray.

nzmax

Количество элементов для mxCreateSparse для выделения для хранения массивов, на которые указывает ir, pr, и pi (если он существует). Набор nzmax больше или равно числу ненулевых элементов в mxArray, но установите значение меньше или равно количеству строк, умноженному на число столбцов. При указании nzmax значение 0, то mxSetNzmax устанавливает значение nzmax кому 1.

Описание

Использовать mxSetNzmax для назначения нового значения nzmax поле указанного разреженного mxArray. nzmax поле содержит максимальное количество ненулевых элементов в разреженном mxArray.

Количество элементов в ir, pr, и pi (если он существует) массивы должны быть равны nzmax. Поэтому после звонка mxSetNzmax, необходимо изменить размер ir, pr, и pi массивы. Чтобы изменить размер одного из этих массивов:

  1. Звонить mxRealloc с указателем на массив, устанавливая размер на новое значение nzmax.

  2. Вызовите соответствующий mxSet рутина (mxSetIr, mxSetDoubles, или mxSetComplexDoubles), чтобы установить новую область памяти в качестве текущей.

Способы определения размера nzmax являются:

  • Набор nzmax равно или немного больше числа ненулевых элементов в разрезе mxArray. Такой подход позволяет сохранить драгоценное кучное пространство.

  • Сделать nzmax равно общему количеству элементов в mxArray. Такой подход исключает (или, по крайней мере, уменьшает) дорогостоящие перераспределения.

Примеры

См. эти примеры в разделе matlabroot/extern/examples/mx:

См. также

|

Представлен до R2006a