Я пытаюсь создать мекс-функцию, чья запись является целым числом, а вывод - массивом целых чисел.
Таким образом, функция выглядит так: int * myFunction (unsigned int N).
В mexFunction я объявляю переменную * variab типа int, а затем
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, но я не знаю, как решить проблему. Любой намек?
Приветствия.