Matlab 减少MEX文件中矢量的大小
给定这样一个类型化向量Matlab 减少MEX文件中矢量的大小,matlab,mex,Matlab,Mex,给定这样一个类型化向量 matlab::data::ArrayFactory工厂; matlab::data::TypedArray BigArray=Factory.createArray({420,1}); 如何在没有(重新)分配的情况下缩小BigArray大小?我只想把它的内部长度维数设置为小于420的值。< p>假设你是capi而不是C++ API,你可以在 MxReals< /Cord>对象上使用 MxSENT< /C>或 MxSEM> 来减少它。p> int M = 420; in
matlab::data::ArrayFactory工厂;
matlab::data::TypedArray BigArray=Factory.createArray({420,1});
如何在没有(重新)分配的情况下缩小
BigArray
大小?我只想把它的内部长度维数设置为小于420的值。< p>假设你是capi而不是C++ API,你可以在<代码> MxReals< /Cord>对象上使用<代码> MxSENT< /C>或<代码> MxSEM> <代码>来减少它。p>
int M = 420;
int N = 1;
mxArray *BigArray = mxCreateNumericMatrix(M, N, mxDOUBLE_CLASS, mxREAL);
mxSetM(BigArray, M - 4);
>假设你弹出C API而不是C++ API,你可以在int M = 420;
int N = 1;
mxArray *BigArray = mxCreateNumericMatrix(M, N, mxDOUBLE_CLASS, mxREAL);
mxSetM(BigArray, M - 4);
MATLAB数组需要是连续的,如果不复制数据,就无法提取部分。如果您分享如何使用较小的数组,我们可能会想出解决方法。我不想触及数组的conitguos属性。如果将数组视为长度属性、已分配大小属性及其数据指针属性的组合。我只想把它的长度减少4倍。我不在乎以后是否有一些过度分配的数据。MATLAB数组需要是连续的,如果不复制数据,就无法提取部分。如果您分享如何使用较小的数组,我们可能会想出解决方法。我不想触及数组的conitguos属性。如果将数组视为长度属性、已分配大小属性及其数据指针属性的组合。我只想把它的长度减少4倍。我不在乎以后它是否有一些过度分配的数据。