matlab中用mex编译出错
① 请教关于利用Matlab中“mex”命令编译C程序的问题
1.准备好C语言程序,清楚C语言的入口函数
2.编写mexfunction函数。mexfunction函数为C语言与MATLAB语言的接口函数。调用实例在mylinedetect.c文件中.在MATLAB中调用mex指令编译相关文件,将C语言编译为MEX文件。
3.编译完成后,生成mylinedetect.mexw32或mylinedetect.mexw64文件,此文件即mex文件,用于MATLAB与C语言接口函数.
4.编译完成之后,编写MATLAB函数,调用MEX文件。以MEX文件的形式调用编译完成的C语言函数[o1,o2]=mylinedetect(double(X).');......
5.输出结果,上述linedetect函数完成图像中直线检测功能,带入MATLAB中调用后形成结果。
② MATLAB编译器配置mex -v 出错
[r,c]
=
find(r
==
max(r(:)));
检索r中最大元素所在的位置(行标r和列标c)
thetap
=
theta(c(1));
theta()是自定义函数
③ MATLAB 错误使用 mex
要解决相关的mex命令找不到编译器,首先就需要了解相关命令调用的配置文件的路径位于:<MatlabRoot>/bin/win64/mexopts,里面有很多和和编译器以及SDK相关的环境配置文件,如图所示。
1、matlab版本问题
标明了不同类型版本的编译器配置文件,如果编译器版本的配置信息不在这个文件夹里面自然会提示找不到到文件夹。这类问题网上有很多解决方法,提供了很多相应版本的配置文件,只要将其拷到mexopts文件夹下,就解决了。
2、配置文件里面的路径和电脑的实际路径不一致
解决方法:要仔细核对 msvc2013.xml和msvcpp2013.xml这两个配置文件的信息。
(3)matlab中用mex编译出错扩展阅读:
通过使用MEX文件,MEX文件使得调用C函数和调用Matlab的内置函数一样方便。MEX文件是由原C代码加上MEX文件专用的接口函数后编译而成的。
MEX文件实现了一种接口,它把在Matlab中调用函数时输入的自变量通过特定的接口调入了C函数,得出的结果再通过该接口调回Matlab。该特定接口的操作,包含在mexFunction这个函数中,由使用者具体设定。
④ 在matlab中使用mex编译无法找到编译器
.M文件是保存一段代码的文件,类似于C语言中的一个函数体; 这也是MATLAB中最常见的文件保存格式之一 .MEX文件是一种“可在matlab环境中调用的C(或fortran)语言衍生程序”。也就是说,MEX文件的源码文件是由C或Fortran语言编写的,后经matlab编
⑤ matlab中mex编译出问题"Specified export _mexFunction is not defined ",都配置好了呀.
matlab自带的LCC编译器不支持中文注释,而程序中出现了中文注释!
⑥ 为什么我在Matlab编译mexall的时候总是出错
这个问题我恰好遇到过。这个版本的matlab必须放在不包含空格的文件夹下,program
files就是不行的,把它删了,重新装到c盘根目录下就好了。
⑦ c++ 编辑的.cpp文件如何在matlab中mex编译报错
他不是报错 undefined reference to `VCI_ClearBuffer' 吗?说明你这个VCI_ClearBuffer的变量未定义啊,第二个地方是ld returned 1 exit status,出现这个错误一般是你上一个编译运行的窗口没有关闭。
⑧ matlab mex -setup执行出错,这是什么错误应该怎么操作
>> mex -setup
Please choose your compiler for building external interface (MEX) files:
Would you like mex to locate installed compilers [y]/n?
选择n,后
Select a compiler:
[1] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[2] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)
[3] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)
[4] Intel Visual Fortran 10.1 (with Microsoft Visual C++ 2005 SP1 linker)
[5] Lcc-win32 C 2.4.1
[6] Microsoft Visual C++ 6.0
[7] Microsoft Visual C++ 2005 SP1
[8] Microsoft Visual C++ 2008 Express
[9] Microsoft Visual C++ 2008 SP1
[10] Microsoft Visual C++ 2010
[11] Microsoft Visual C++ 2010 Express
[12] Open WATCOM C++
[0] None
Compiler:
输入安装的VC编辑器选项,之后会提示VC的安装地址,修正之,即可。
⑨ matlab mex编译环境配置错误,怎么回事
这是因为你的命令有问题,mex 和 -setup 之间要有一个空格,即“mex -setup”才对