2D разреженный массив
#include "matrix.h"
mxArray *mxCreateSparse(mwSize m, mwSize n, mwSize nzmax,
mxComplexity ComplexFlag);#include "fintrf.h" mwPointer mxCreateSparse(m, n, nzmax, ComplexFlag) mwSize m, n, nzmax integer*4 ComplexFlag
mКоличество строк
n
Количество столбцов
nzmax
Число элементов это mxCreateSparse должен выделить, чтобы содержать pr, ir, и, если ComplexFlag mxCOMPLEX в C (1 на Фортране), pi массивы. Установите значение nzmax чтобы быть больше или быть равным количеству ненулевых элементов, вы планируете поместить в mxArray, но убедитесь тот nzmax меньше чем или равно m*nnzmax больше или равен 1.
ComplexFlagЕсли mxArray вы создаете, должен содержать мнимые данные, установить ComplexFlag к mxCOMPLEX в C (1 на Фортране). В противном случае установите ComplexFlag к mxREAL в C (0 на Фортране).
Указатель на созданный mxArray. Если неудачный в автономном (нефайл MEX) приложение, возвращает NULL в C (0 на Фортране). Если неудачный в файле MEX, файл MEX отключает и возвращает управление в MATLAB® подсказка. Функция неудачна, когда существует недостаточно свободного пространства "кучи", чтобы создать mxArray. В этом случае попытайтесь уменьшать nzmaxM, или n.
Вызвать mxCreateSparse создать безлюдный разреженный двойной mxArray. Возвращенный разреженный mxArray не содержит разреженной информации и не может быть передан в качестве аргумента никакому MATLAB разреженные функции. Сделать возвращенный разреженный mxArray полезный, инициализируйте pr, ir, jc, и (если это существует), pi массивы.
mxCreateSparse выделяет место для:
pr массив длины nzmax.
pi массив длины nzmax, но только если ComplexFlag mxCOMPLEX в C (1 на Фортране).
ir массив длины nzmax.
jc массив длины n+1.
Когда вы закончили использовать разреженный mxArray, вызвать mxDestroyArray исправить все его пространство "кучи".
mxDestroyArray | mxSetNzmax | mxSetIr | mxSetJc | mxComplexity