天天看點

A mxCreateDoubleMatrix M N mxREAL mxDestroyArray A

分享一下我老師大神的人工智能教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實作我們中華民族偉大複興!

#include <string.h>#include "mex.h"void DisplayMatrix(char *Name, double *Data, int M, int N){ /* Display matrix data */ int m, n; mexPrintf("%s = \n", Name); for(m = ; m < M; m++, mexPrintf("\n"))  for(n = ; n < N; n++)   mexPrintf("%8.4f ", Data[m + M*n]);}void CallQR(double *Data, int M, int N){ /* Perform QR factorization by calling the MATLAB function */ mxArray *Q, *R, *A; mxArray *ppLhs[]; DisplayMatrix("Input", Data, M, N); A = mxCreateDoubleMatrix(M, N, mxREAL); /* Put input in an mxArray */ memcpy(mxGetPr(A), Data, sizeof(double)*M*N); mexCallMATLAB(, ppLhs, , &A, "qr"); /* Call MATLAB's qr function */ Q = ppLhs[]; R = ppLhs[]; DisplayMatrix("Q", mxGetPr(Q), M, N); DisplayMatrix("R", mxGetPr(R), M, N); mxDestroyArray(R); /* No longer need these */ mxDestroyArray(Q); mxDestroyArray(A);}void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]){#define M_IN prhs[0] if(nrhs !=  || mxGetNumberOfDimensions(M_IN) !=  || !mxIsDouble(M_IN))  mexErrMsgTxt("Invalid input."); CallQR(mxGetPr(M_IN), mxGetM(M_IN), mxGetN(M_IN));}
           

給我老師的人工智能教程打call!http://blog.csdn.net/jiangjunshow

A mxCreateDoubleMatrix M N mxREAL mxDestroyArray A