Уменьшить размер вектора в MEX-файле - PullRequest
0 голосов
/ 11 апреля 2019

Учитывая типизированный вектор, подобный этому

matlab::data::ArrayFactory Factory;
matlab::data::TypedArray<double> BigArray = Factory.createArray({420, 1});

Как я могу уменьшить BigArray размер без (пере) выделения?Все, что я хочу, это установить для его внутреннего измерения длины значение меньше 420.

1 Ответ

2 голосов
/ 11 апреля 2019

Если предположить, что вы используете C API вместо C ++ API, вы можете использовать mxSetN или mxSetM для объекта mxArray, чтобы уменьшить его.

int M = 420;
int N = 1;
mxArray *BigArray = mxCreateNumericMatrix(M, N, mxDOUBLE_CLASS, mxREAL);
mxSetM(BigArray, M - 4);
...