#include #include "mex.h" void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray * prhs[]) { int n,m,N,M,buflen,i; char *prdata,*pldata; if(nrhs == 0) { mexErrMsgTxt("One input must be required."); return; } N = mxGetN(prhs[0]);M=mxGetM(prhs[0]); if((N * M != 0) && mxIsChar(prhs[0])) { buflen = N * M + 1; prdata = mxCalloc(buflen,sizeof(char)); pldata = mxCalloc(buflen,sizeof(char)); if(0 != mxGetString(prhs[0],prdata,buflen)) { mexWarnMsgTxt("Not enough space. String is truncated."); } memcpy(pldata,prdata,buflen); plhs[0] = mxCreateString(pldata); mxFree(prdata); // required!! mxFree(pldata); // better !! but not necessary } else mexErrMsgTxt("Input must be string"); return; }