Заставьте массив сохраниться после того, как файл MEX завершится
#include "mex.h" void mexMakeArrayPersistent(mxArray *pm);
#include "fintrf.h" subroutine mexMakeArrayPersistent(pm) mwPointer pm
\pmУказатель на mxArray, созданный mxCreate* функция
По умолчанию mxArray, выделенный mxCreate* функция, не является персистентным. Средство управления памятью MATLAB® автоматически освобождает нестойкий mxArray, когда MEX-функция заканчивается. Если вы хотите, чтобы mxArray сохранился посредством нескольких вызовов MEX-функции, вызовите функцию mexMakeArrayPersistent.
Не присваивайте массив, созданный с функцией mexMakeArrayPersistent к выходному аргументу plhs файла MEX.
Если вы создаете персистентный mxArray, вы ответственны за уничтожение его с помощью mxDestroyArray, когда файл MEX очищен. Если вы не уничтожаете персистентный mxArray, MATLAB пропускает память. Смотрите mexAtExit, чтобы видеть, как зарегистрировать функцию, которая называется, когда файл MEX очищен. Смотрите mexLock, чтобы видеть, как заблокировать ваш файл MEX так, чтобы это никогда не было очищено.
mexAtExit, mxDestroyArray, mexLock, mexMakeMemoryPersistent и mxCreate* функции