Задать пространство хранения для ненулевых элементов
#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 массивы. Чтобы изменить размер одного из этих массивов:
Звонить mxRealloc с указателем на массив, устанавливая размер на новое значение nzmax.
Вызовите соответствующий mxSet рутина (mxSetIr, mxSetDoubles, или mxSetComplexDoubles), чтобы установить новую область памяти в качестве текущей.
Способы определения размера nzmax являются:
Набор nzmax равно или немного больше числа ненулевых элементов в разрезе mxArray. Такой подход позволяет сохранить драгоценное кучное пространство.
Сделать nzmax равно общему количеству элементов в mxArray. Такой подход исключает (или, по крайней мере, уменьшает) дорогостоящие перераспределения.