mxSetNzmax (C и Фортран)

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

Синтаксис 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