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. 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