SUNGIRLANN
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Есть проэкт в Visual Studia 6. Программа создаёт dll файл, при помощи которого в MATLAB передаются данные с С++. Проблема в том,что по здравому смыслу у меня величины x и m должны быть одинаковые. А программа выдаёт совершенно немыслимые числа для m. Помогите разобраться,пожалуйста. #include <mex.h> #include <math.h> #include <stdio.h> #include <string.h> #define raz 20 //Prototype: void MyEmptyMexFunction(int,int, double*, double*); //-------------------------------------- void mexFunction(int nOut, mxArray* pOut[] ) { int mm=20,nn=1; double *pO; double *pO1; if (nOut > 0) { pOut[0] = mxCreateDoubleMatrix(mm,nn,mxREAL); pOut[1] = mxCreateDoubleMatrix(mm,nn,mxREAL); pO = mxGetPr(pOut[0]); pO1 = mxGetPr(pOut[1]); MyEmptyMexFunction(mm,nn,pO,pO1); } } //------------Our own auxilary function---------------- void H(double* x, double* aq) { int i; for (i=0;i<raz;i++) aq[i]=x[i]; } void MyEmptyMexFunction(int mm, int nn, double* pO, double* pO1) { double x1[raz]; int n; int i; double m[raz]; double x[raz]; x[0]=-10; n=0; H(x,x1); do { x[n+1]=n; m[n]=x1[n]; n++; } while(n<raz-1); for (i=n;i<raz;i++) { m[i]=333; x[i]=333; } memcpy(pO, m, i*sizeof(double)); memcpy(pO1, x, i*sizeof(double)); } |