⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 h3.c

📁 《MATLAB实用指南》系列丛书DE源代码
💻 C
字号:
/////////////////////Mex头文件////////////////////////////////////////////
#include "mex.h"
#include "String.h"
////////////////////用户C程序 /////////////////////////////////////////////
void reword(FILE* fp1,char *rP_buf,char *lP_buf,int buf,int ii)
{int i;
fprintf(fp1,"\n The %d Input  String is: %s\n",ii,rP_buf);
for(i=0;i<buf-1;i++){*(lP_buf+i)=*(rP_buf+buf-i-2);}
fprintf(fp1,"\n The %d Output  String is: %s\n",ii,lP_buf);	
}
////////////////// 接口程序mexFunction/////////////////////////////////////
void mexFunction(int nlhs,mxArray *plhs[],int nrhs, mxArray *prhs[])
{int i,j,buf; 
 char *rP_buf,*lP_buf;
FILE *fp1;
if((fp1=fopen("OutPut3.txt","w"))==NULL){mexErrMsgTxt(" Can't open OutPutfile\n");}
nlhs=nrhs;
for(i=0;i<nrhs;i++){
if(mxIsChar(prhs[i])!=1)mexErrMsgTxt("Input must be a string");//参数检查
buf=(mxGetM(prhs[i])*mxGetN(prhs[i]))+1;///获取每一个输入参数对应的字符串大小,
                                        ///由于CString 以NULL结束,故加1
rP_buf=mxCalloc(buf,sizeof(char));     //////Matlab内存管理机制
lP_buf=mxCalloc(buf,sizeof(char));     //////Matlab内存管理机制
if(mxGetString(prhs[i],rP_buf,buf)==1) //由prhs[i]中获取输入参数
	mexWarnMsgTxt("Not enough space.String is truncated");
reword(fp1,rP_buf,lP_buf,buf,i);      ////调用C程序
plhs[i]=mxCreateString(lP_buf);       //plhs[i]地址赋初值
mxFree(rP_buf);   ///Matlab内存管理机制
mxFree(lP_buf);
}
fclose(fp1);
}
////////////////结束////////////////////////////////////////////////////

⌨️ 快捷键说明

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