【发布时间】:2012-03-15 05:58:33
【问题描述】:
我正在尝试创建一个 mex 函数,其条目是一个整数,其输出是一个整数数组。 所以函数看起来像:int *myFunction(unsigned int N)。 在 mexFunction 中,我声明了一个 int 类型的变量 *variab,然后
N = mxGetScalar(prhs[0]);
/* assign a pointer to the output */
siz= 2*ceil(log(1.0*N)/log(2.0)-0.5)+1;
plhs[0] = mxCreateDoubleMatrix(1,siz, mxREAL);
vari = (int*) mxGetPr(plhs[0]); */
/* Call the subroutine. */
vari = myFunction(N);
mexPrintf("The first value is %d\n", vari[0]);
问题是第一个值是正确的(其他的也经过检查并且也是正确的)但是当我调用例程 mxFunction(16) 时,我只得到 0 作为输出。 我想这是因为我的输出是一个 int 数组,但我不知道如何解决这个问题。有什么提示吗? 干杯。
【问题讨论】: