main.cpp

来自「matlab 扩展编程书的代码 matlab 扩展编程书另传」· C++ 代码 · 共 68 行

CPP
68
字号
#include "stdafx.h"
#include "wave.h"
#include "mex.h"

#define WAVE_IN_START 1
#define WAVE_IN_STOP  2
#define WAVE_GET_DATA 3
#define WAVE_GET_E    4
#define WAVE_GET_Z    5

void mexFunction(
                 int nlhs,       mxArray *plhs[],
                 int nrhs, const mxArray *prhs[]
		 )
{
	double *ret;
	int cmd, len;

	if (nrhs <1 || !mxIsNumeric(prhs[0]))
		mexErrMsgTxt("命令格式错误");

	cmd = (int)* mxGetPr(prhs[0]);

	switch (cmd)
	{
		case WAVE_IN_START:
			wave_start();
			break;

		case WAVE_IN_STOP:
			wave_stop();
			break;

		case WAVE_GET_DATA:	
			len = wave_get_len();

			plhs[0] = mxCreateDoubleMatrix(len, 1, mxREAL);
			ret = mxGetPr(plhs[0]);
			if (len==0) break;

			wave_get_data(ret);
			break;

		case WAVE_GET_E:	
			len = wave_get_frames();

			plhs[0] = mxCreateDoubleMatrix(len, 1, mxREAL);
			ret = mxGetPr(plhs[0]);
			if (len==0) break;

			wave_get_energy(ret);
			break;

		case WAVE_GET_Z:	
			len = wave_get_frames();

			plhs[0] = mxCreateDoubleMatrix(len, 1, mxREAL);
			ret = mxGetPr(plhs[0]);
			if (len==0) break;

			wave_get_zcr(ret);
			break;

		default:
			break;
   }
}

⌨️ 快捷键说明

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