问题:找不到MinGW-w64编译器
出现原因:MATLAB与编译器安装的顺序不对,如果先安装的matlab,后安装的编译器,便容易出现这种错误。
参考链接:https://ww2.mathworks.cn/matlabcentral/fileexchange/52848-matlab-support-for-mingw-w64-c-c-compiler
解决方案:
1.下载MinGW GCC 4.9.2
链接:https://pan.baidu.com/s/1jHB3k8rHrpuvdMUTphC8cw
提取码:en77
2.安装注意事项
参考链接:https://ww2.mathworks.cn/help/matlab/matlab_external/install-mingw-support-package.html
3.设置环境变量
临时设置:
MATLAB在命令窗口输入>> setenv('MW_MINGW64_LOC','E:\mingw-64\mingw32')
长期生效:
-
点击计算机>选择系统属性 >高级系统设置>高级选项卡
-
单击环境变量>系统变量>选择新建.
-
在新建系统变量中,输入
MW_MINGW64_LOC
变量名称。路径为 E:\mingw-64\mingw32
4.验证环境
matlab命令窗口输入>> mex -setup
选择C++或者C编译都可以
5.调用C代码
参考文章:https://blog.csdn.net/wislon/article/details/78777298
1) 语法:
函数的形式必须是
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
nlhs:输出参数个数
plhs:输出参数列表
nrhs:输入参数个数
prhs:输入参数列表
,不过函数名可以随便取的。注意:保存的文件名就是将来在MATLAB中调用的函数名,而不是这里的函数名。
2)写一个add.c文件
#include "mex.h"
//author zhuwl
//test matlab use C function
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
mexPrintf("OK!/n");
}
3) 把add.c拷贝到%matlab安装根目录%MATLAB\R2015b\bin
4) 调用效果: