众所周知,matlab提供了很多有用的函数,平时最常用的就是它的画图函数(plot、stem等),本次有如下需求:用c++写了一段对正弦波采样的代码,想大概的验证其数据的正确性。显然最直观的就是观察由其数据所绘制的波形,于是便研究matlab与c++的混合编程。
一、过程简介
环境:matlab2017a+MinGW
1.1、创建cpp文件,该文件名后面将作为matlab调用c++函数时使用的函数名;
1.2、cpp中include头文件<mex.h>,该头文件位于matlab安装目录下的\extern\include\,如果编译时找不到则自行添加;
1.3、编写c++函数,该函数需要按照特定格式来写,函数定义如下:
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{}
参数解释:
nlhs为输出参数的个数;
*plhs[]为输出参数指针数组;用于传递返回值至matlab调用处;
nrhs为输入参数的个数;可用于判断参数个数是否满足需求;
*prhs[]为输入参数指针数组;matlab调用c++函数时传递参数下去;
1.4、matlab 调用
在matlab脚本文件中应包含如下两个部分:
mex cpp文件
函数调用