matlab教程第十二章应用程序接口api(编辑修改稿)内容摘要:

用。 ( D) MAT 库函数 matClose, matGetArray, matOpen, matPutArray, matPutArrayAsGlobal的使用方法; ( 1) include include include define BUFSIZE 255 // int create(const char *file) { // 9 MATFile *pmat。 mxArray *pa1, *pa2, *pa3。 double data[9] = { , , , , , , , , }。 char str[BUFSIZE]。 printf(Creating file %s...\n\n, file)。 pmat = matOpen(file, w)。 if (pmat == NULL) { printf(Error creating file %s\n, file)。 printf((do you have write permission in this directory?)\n)。 return(1)。 } pa1 = mxCreateDoubleMatrix(3,3,mxREAL)。 mxSetClassName(pa1, LocalDouble)。 pa2 = mxCreateDoubleMatrix(3,3,mxREAL)。 mxSetClassName(pa2, GlobalDouble)。 memcpy((void *)(mxGetPr(pa2)), (void *)data, sizeof(data))。 pa3 = mxCreateString(MATLAB: the language of technical puting)。 mxSetClassName(pa3, LocalString)。 matPutVariable(pmat,LocalDouble, pa1)。 matPutVariableAsGlobal(pmat,GlobalDouble, pa2)。 matPutVariable(pmat, LocalString,pa3)。 memcpy((void *)(mxGetPr(pa1)), (void *)data, sizeof(data))。 matPutVariable(pmat,LocalDouble, pa1)。 mxDestroyArray(pa1)。 mxDestroyArray(pa2)。 mxDestroyArray(pa3)。 if (matClose(pmat) != 0) { printf(Error closing file %s\n,file)。 return(1)。 } // pmat = matOpen(file, r)。 if (pmat == NULL) 10 { printf(Error reopening file %s\n, file)。 return(1)。 } pa1 = matGetVariable(pmat, LocalDouble)。 // if (pa1 == NULL) { printf(Error reading existing matrix LocalDouble\n)。 return(1)。 } if (mxGetNumberOfDimensions(pa1) != 2) { printf(Error saving matrix: result does not have two dimensions\n)。 return(1)。 } pa2 = matGetVariable(pmat, GlobalDouble)。 // if (pa2 == NULL) { printf(Error reading existing matrix GlobalDouble\n)。 return(1)。 } if (!(mxIsFromGlobalWS(pa2))) { printf(Error saving global matrix: result is not global\n)。 return(1)。 } pa3 = matGetVariable(pmat, LocalString)。 // if (pa3 == NULL) { printf(Error reading existing matrix LocalString\n)。 return(1)。 } mxGetString(pa3, str, 255)。 if (strcmp(str, MATLAB: the language of technical puting)) { 11 printf(Error saving string: result has incorrect contents\n)。 return(1)。 } mxDestroyArray(pa1)。 mxDestroyArray(pa2)。 mxDestroyArray(pa3)。 if (matClose(pmat) != 0) { printf(Error closing file %s\n,file)。 return(1)。 } printf(Done\n)。 return(0)。 } //主程序 int main() { int result。 result = create()。 return (result==0)?EXIT_SUCCESS:EXIT_FAILURE。 } ( 2) cd d:\mywork mcc p ( 3) clear cd d:\mywork !exm12022_1 Creating file ... Done load who Your variables are: GlobalDouble LocalDouble LocalString 12 GlobalDouble,LocalDouble,LocalString GlobalDouble = 1 2 3 4 5 6 7 8 9 LocalDouble = 1 2 3 4 5 6 7 8 9 LocalString = MATLAB: the language of technical puting MATLAB 引擎技术的应用 MATLAB 引擎概念和功用 引擎库函数及 C 源码应用程序的编写 【例 】用 C 语言编写调用 MATLAB 引擎计算三次多项式 523  xx 根的源程序。 ( 1) include include include include int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { Engine *ep。 mxArray *P=NULL,*r=NULL。 char buffer[301]。 double poly[4]={1,0,2,5}。 if (!(ep=engOpen(NULL))) { fprintf(stderr,\nC。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。