📄 例11-3.m
字号:
#include "mex.h"
void revord(char *input_buf, int buflen, char *output_buf)
{
int i;
/* 将字符串反序*/
for (i = 0; i < buflen-1; i++)
*(output_buf+i) = *(input_buf+buflen-i-2);
}
/*然后编写mex文件入口子程序*/
void mexFunction(int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[])
{
char *input_buf, *output_buf;
int buflen,status;
/* 检查参数的个数*/
if (nrhs != 1)
mexErrMsgTxt("One input required.");
else if (nlhs > 1)
mexErrMsgTxt("Too many output arguments.");
/* 检测输入参数是否是字符串 */
if (mxIsChar(prhs[0]) != 1)
mexErrMsgTxt("Input must be a string.");
if (mxGetM(prhs[0]) != 1)
mexErrMsgTxt("Input must be a row vector.");
/*获得输入字符串的长度*/
buflen = (mxGetM(prhs[0]) * mxGetN(prhs[0])) + 1;
/* 为输入输出字符串分配内存*/
input_buf = mxCalloc(buflen, sizeof(char));
output_buf = mxCalloc(buflen, sizeof(char));
/* 复制MATLAB字符串数据 prhs[0] 到 C 语言字符串指针
* input_buf. */
status = mxGetString(prhs[0], input_buf, buflen);
if (status != 0)
mexWarnMsgTxt("Not enough space. String is truncated.");
/* 调用计算功能子进程. */
revord(input_buf, buflen, output_buf);
plhs[0] = mxCreateString(output_buf);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -