mex_strmat.c

来自「本人收集的一些有关matlab的代码程序设计 也不知道改选什么分类」· C语言 代码 · 共 30 行

C
30
字号
#include "matrix.h"
/*Function mex_strmat*/
void mexFunction( int nlhs, mxArray *plhs[],
                  int nrhs, const mxArray *prhs[])
{
   char *my_str;
   mxChar *xp;
   int n_mystr, i, j, *ndims, m, n;
   if (nrhs!=1) mexErrMsgTxt("Wrong number of input arguments!");
   if (nlhs>1) mexErrMsgTxt("Too many output arguments!");
   if (!mxIsChar(prhs[0])) mexErrMsgTxt("String input is required!");
   n_mystr=mxGetNumberOfElements(prhs[0])+1;
   my_str=mxCalloc(n_mystr, sizeof(char));
   ndims=mxGetDimensions(prhs[0]); m=ndims[0];
   n=mxGetNumberOfDimensions(prhs[0]); 
   mxGetString(prhs[0], my_str, n_mystr);
   if (nlhs==1) {
      plhs[0]=mxCreateCharArray(n,ndims); 
      xp=(mxChar *) mxGetData(plhs[0]); 
      for (i=0; i<n_mystr; i++) xp[i]=my_str[i]; 
   }
   else{
      for (j=0; j<m; j++){
         for (i=j; i<n_mystr; i+=m) mexPrintf("%c",my_str[i]);
         mexPrintf("\n");
      }
   }
   mxFree(my_str);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?