readmessage_mex.c
来自「麻省理工学院的人工智能工具箱,很珍贵,希望对大家有用!」· C语言 代码 · 共 57 行
C
57 行
#include "readmessage.h"int debug=0;void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[] ) { char *InFile; unsigned short *DumStr; double *A,*offset; float *y=NULL; long m,n,i,eof,j,chLon,NumMes,flag,num; MessageStruct Mess; if (nrhs != 2) { mexErrMsgTxt("Two input arguments required."); } else if (nlhs > 4) { mexErrMsgTxt("Too many output arguments."); } DumStr = (unsigned short *)mxGetPr(prhs[0]); offset = mxGetPr(prhs[1]); chLon=mxGetN(prhs[0]); NumMes=mxGetM(prhs[1]); InFile=(char *)malloc(sizeof(char)*(chLon+1)); for(i=0;i<chLon;i++) InFile[i]=(char)DumStr[i]; InFile[chLon]='\0'; num=(int)offset[0]; eof=readgrib(InFile,&num,&y,&m,&n,&flag,&Mess); free(InFile); plhs[0] = mxCreateDoubleMatrix(m, n, mxREAL); A = mxGetPr(plhs[0]); for(i=0;i<m;i++) for(j=0;j<n;j++) A[i+j*m]=(double)y[i*n+j]; if (nlhs > 1) plhs[1] = AssignMessToMatlab(Mess); if (nlhs > 2){ plhs[2] = mxCreateDoubleMatrix(1, 1, mxREAL); offset=mxGetPr(plhs[2]); offset[0]=(double)num; } if (nlhs > 3){ plhs[3] = mxCreateDoubleMatrix(1, 1, mxREAL); offset=mxGetPr(plhs[3]); offset[0]=(double)eof; } if(y!=NULL) free(y); return; }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?