mxSetNzmax (C and 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. The 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