减少MEX文件中向量的大小

时间:2019-04-11 16:39:47

标签: matlab mex

给出这样的类型化向量

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

如何在不分配(重新分配)的情况下缩小BigArray的大小?我只想将其内部长度尺寸设置为小于420的值。

1 个答案:

答案 0 :(得分:2)

假设您准备使用C API而不是C ++ API,则可以在mxSetN对象上使用mxSetMmxArray来减少它。

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