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

📄 例11-3.m

📁 这是一个MATLAB7.0基础与提高例题的所有源码
💻 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 + -