文件帮助中心文件
构建MEX函数或引擎应用程序
MEX文件名
MEX FILENAMES API选项1 ...申请
Mex -client引擎文件名
MEX -Client引擎文件名API Option1 ...申请
mex -setup [lang]
Mex -setup -client引擎[郎]
例子
梅克斯文件名编译并链接用的一个或多个C ++源文件MATLAB数据API.进入当前文件夹中的二进制MEX文件。有关编写这些应用程序的信息,请参阅c++墨西哥人的应用程序.
梅克斯文件名
文件名
如果编写MEX文件基于矩阵C API或者是Fortran Matrix API., 然后梅克斯文件名使用中构建一个或多个C,C ++或Fortran源文件-R2017bapi.在未来的matlab版本中®,默认的api选项将更改为使用交错的复杂API (-R2018a).MathWorks建议您创建MEX文件并更新现有的MEX文件,以使用交错的复杂API。另外,使用MX_HAS_INTERLEAVED_COMPLEX宏以确保Matlab版本的所需行为。有关更多信息,请参阅MATLAB支金宝app持MEX函数中的交错复合API.
-R2017b
api
-R2018a
MX_HAS_INTERLEAVED_COMPLEX
有关使用C,C ++和Fortran应用程序的信息,请参阅集成MATLAB与外部编程语言和系统.
梅克斯文件名apioption1 ...申请构建指定的api和可选的option1 ...申请论点。这option1 ...申请arguments补充或覆盖默认值梅克斯构建配置。
梅克斯文件名apioption1 ...申请
option1 ...申请
梅克斯
Mex -client引擎文件名创建c++源文件MATLAB数据API.进入独立的MATLAB引擎应用程序。有关更多信息,请参阅C ++引擎API简介
如果编写基于Matlab引擎API for c, 这MATLAB C API读取mat文件数据, 这用于Fortran的Matlab Engine API, 或者MATLAB FORTRAN API读取MAT文件数据, 然后Mex -client引擎文件名与...建立独立申请-R2017bapi.在未来版本的MATLAB,默认情况下api选项将更改为使用交错的复杂API (-R2018a).MathWorks建议您创建引擎应用程序并更新现有应用程序以使用交错的复杂API。
Mex -client引擎文件名apioption1 ...申请使用指定构建引擎应用程序api和可选的option1 ...申请论点。
Mex -client引擎文件名apioption1 ...申请
mex -setup [郎]显示有关用于构建MEX文件的给定语言的默认编译器的信息。MATLAB为每种支持的语言定义了一个默认编译器。金宝app如果对给定的语言有多个编译器,请使用郎选项更改该语言的默认编译器。有关更多信息,请参阅改变默认的编译器和选择C ++编译器.
mex -setup [郎]
郎
Mex -Setup -Client引擎[郎]选择用于构建引擎应用程序的编译器。
Mex -Setup -Client引擎[郎]
全部收缩
中的复制源代码示例matlabroot./外面的例子文件夹中。
matlabroot./外面的例子
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那'mex'那“explore.c”),'。'那“f”)
构建MEX文件。输出显示特定于编译器的信息。
梅克斯-R2018a探索
测试。
A = [1 3 5];B = [5 3 1];一个=复杂(A, b);探索(A)
------------------------------------------------ 名称:prhs[0]维度:1 x3类名:双 ------------------------------------------------ ( 1, - 1) = 1 + 5(1、2)= 3 + 3(1、3)= 5 + 1我
构建一个C程序yprime.c.放入一个MEX文件。
yprime.c.
matlabroot.
/外面的例子
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那'mex'那'yprime.c'),'。'那“f”)
梅克斯yprime.c.
建立“Mingw64编译器(C)”。MEX成功完成。
t = 1;y = 1:4;yprime(t,y)
ans =.1×48.9685 4.0000 -1.0947
要显示编译和链接命令和用于故障排除的其他信息,请使用详细模式。
梅克斯-v.-compatibleArrayDimsyprime.c.
输出显示特定于平台和编译器的信息。
使用环境变量指定要传递给编译器的其他选项。
确定变量名:
与mingw构建C ++代码®那苹果系统和Linux.®编译器,使用cxxflags..
cxxflags.
使用Mingw构建C代码,苹果系统, Linux编译器使用CFLAGS.
CFLAGS
和微软®视觉工作室®编译器,使用COMPFLAGS.
COMPFLAGS
使用Visual Studio构建MEX文件时指定c++ 17标准。
梅克斯COMPFLAGS = '美元COMPFLAGS化= c++ 17 'yprime.c.
有关在不同平台上使用字符串分隔符的详细信息,请参阅覆盖默认编译器开关选项.
建立yprime.c.MEX文件通过附加该值-墙到现有的编译器标志。因为该值包含一个空格字符,所以必须描述字符串;你使用的字符取决于平台。
-墙
在matlab提示符下,使用matlab单引号(').
'
梅克斯-v.compflags ='$ compflags -wall'yprime.c.
对于MINGW-W64编译器,它基于GCC / G ++,请使用Linux编译器标志。选择其中一个命令:
梅克斯-v.cxxflags ='$ cxxflags -wall'yprime.c.% c++编译器梅克斯-v.cflags ='$ cflags -wall'yprime.c.% C编译器
在窗户®命令提示符,使用双引号(“).
“
梅克斯-v.COMPFLAGS = " COMPFLAGS美元- wall”yprime.c.
在shell命令行上苹果系统和Linux,使用单引号(').
梅克斯-v.cflags ='$ cflags -wall'yprime.c.
MEX文件示例fulltosparse由两个Fortran源文件组成,loadsparse.f.和fulltosparse。F.要运行此示例,您需要在系统上安装了支持的Fortran编译器。金宝app
fulltosparse
loadsparse.f.
fulltosparse。F
将源文件复制到当前文件夹。
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那“重新预订”那“loadsparse。F '),'。'那“f”)CopyFile(FullFile(Matlabroot,“外来的”那“例子”那“重新预订”那“fulltosparse。F '),'。'那“f”)
建立fulltosparse墨西哥人文件。MEX文件名为fulltosparse因为fulltosparse。F是命令行上的第一个文件。输出包含特定于您的编译器的信息。
梅克斯-largeArraydims.fulltosparse。Floadsparse.f.
与“Intel Visual Fortran Composer XE 2013使用Microsoft Visual Studio 2012”建立。MEX成功完成。
全=眼睛(5);spar = fulltosparse(满)
Spar = 1,11 2,2 1 3,3 1 4,4 1 5,5 1
将当前文件夹中的所有C源文件合并到MEX文件中mymex.使用与产出选项以控制MEX文件的名称。
mymex
与产出
梅克斯与产出mymex* . c
要在不执行命令的情况下预览构建命令详细信息,请使用-N选择。输出包含特定于平台和编译器的信息。
-N
梅克斯-Nyprime.c.
您可以链接到从源MEX文件分开编译的对象文件。
MEX文件示例由两个Fortran源文件组成。这fulltosparse文件是网关例程(包含MEXFUTCTION.子例程),loadsparse包含计算程序。
MEXFUTCTION.
loadsparse
要运行这个示例,您需要在系统上安装一个受支持的Fortran编译金宝app器。将计算子例程复制到当前文件夹。
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那“重新预订”那“loadsparse。F '),'。'那“f”)
编译子程序并将对象文件放在单独的文件夹中,c: \ objfiles.
c: \ objfiles
MKDIR.c: \ objfiles梅克斯-largeArraydims.-C-outdir.c: \ objfilesloadsparse.f.
将Gateway子程序复制到当前文件夹。编译和链接loadsparse对象文件。
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那“重新预订”那“fulltosparse。F '),'。'那“f”)墨西哥人-largeArraydims.fulltosparse。FC:\ objfiles \ loadsparse.obj
要指定包含MATLAB LAPACK库子程序的路径,用于处理复杂的数字例程,请使用-一世选择。要使用这些子程序,MEX文件必须访问标题文件向前.
-一世
向前
复制matrixDivideComplex.c当前文件夹的示例。
matrixDivideComplex.c
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那“重新预订”那“matrixDivideComplex.c”),'。'那“f”)
创建-一世参数的连接'-一世'与路径向前文件。
'-一世'
ipath = ['-一世'fullfile (matlabroot“外来的”那“例子”那“重新预订”)];
为Lapack库文件和文件创建名称和路径的变量,堡垒,包含复数处理例程。
堡垒
lapacklib = fullfile(matlabroot,“外来的”那'lib',电脑(“拱”),'微软'那'libmwlapack.lib');Fortfile = fullfile(matlabroot,“外来的”那“例子”那“重新预订”那'堡垒C');
构建MEX文件。
墨西哥人('-v'那'-R2017B',ipath,“matrixDivideComplex.c”、fortfile lapacklib)
建立matrixDivide.c实例在Windows平台上使用-L.和-L.指定的选项libmwlapack.lib.图书馆。库文件位于文件夹中,matlabroot.\ extern \ lib \拱\微软.
matrixDivide.c
-L.
libmwlapack.lib.
matlabroot.\ extern \ lib \拱\微软
拱
复制matrixDivide.c当前文件夹的示例。
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那“重新预订”那“matrixDivide.c”),'。'那“f”)
捕捉价值matlabroot..
ans = c:\ program files \ matlab \ r2014a
捕捉价值拱.
电脑(“拱”)
ans = win64.
要构建MEX文件,请复制值matlabroot.和拱进入梅克斯命令,如以下语句所示。
梅克斯lc: \ MATLAB程序文件\ \ R2014a \走读生\ lib \ win64 \微软的...-llibmwlapack.matrixDivide.c
您必须使用'人物因为\程序文件在路径中包含一个空格。
\程序文件
这mxcreatecharmatrixfromstr.c示例使用A.#定义象征SPACE_PADDING确定矩阵中的字符向量之间使用的字符。要设置值,请使用mex文件构建-D.选择。
mxcreatecharmatrixfromstr.c
#定义
SPACE_PADDING
-D.
将示例复制到当前文件夹。
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那“mx”那“mxcreatecharmatrixfromstr.c”),'。'那“f”)
设置SPACE_PADDING指令添加值之间的空格。
梅克斯mxcreatecharmatrixfromstr.c-dspace_padding.
构建与'MinGW64编译器C '。MEX成功完成。
复制Engwindemo.c.引擎示例到当前文件夹。
Engwindemo.c.
Copyfile(FullFile(Matlabroot,“外来的”那“例子”那'eng_mat'那'engwindemo.c'),'。'那“f”)
梅克斯-客户引擎Engwindemo.c.
如果在Windows平台上运行,则必须首先将MATLAB注册为COM服务器。有关更多信息,请参阅将MATLAB注册为COM服务器.
运行该示例。
engwindemo !
梅克斯-设置
MATLAB基于列表显示版本和系统的选项金宝app支持和兼容的编译器.
将选项添加到梅克斯链接命令,使用LINKFLAGS命令行选项。例如,在构建时指定可执行文件的环境mymex.c在Windows上,键入:
LINKFLAGS
mymex.c
梅克斯-v.linkflags ='$ linkflags / subsystem:windows'mymex.c
一个或多个文件名,包括名称和文件扩展名,指定为字符串或字符向量。如果文件不在当前文件夹中,请指定文件的完整路径。
文件名可以是以下任意组合:
C,C ++或Fortran语言源文件
金宝app®s函数文件
对象文件
静态库文件。文件名必须包含库文件的完全限定路径。要链接动态库,请使用-L.库名选择。
-L.库名
库名
中列出的第一个源代码文件文件名是二进制MEX文件或引擎应用程序的名称。若要重写此命名约定,请使用'-输出'选择。
'-输出'
使用MATLAB编辑器编写源代码。如果您使用综合开发环境(IDE),例如微软Visual Studio或者Xcode,然后你可以使用梅克斯命令或遵循指南使用MEX脚本选项自定义构建.
MATLAB根据安装的语言自动选择编译器(如果安装)文件名论点。
数据类型:字符
字符
-largeArraydims.
-compatibleArrayDims
与特定于版本的链接矩阵C API或者Fortran Matrix API.,指定为这些值之一。不要组合这些选项。
不要将此选项用于使用MATLAB数据API..
-R2017b(默认)
建立:
单独的复杂API,其中包含Matlab R2017B及更早版本中的C和Fortran矩阵API功能。
大数组处理API,它处理超过2个的数组31-1元素。
将句柄视为图形对象目的,而不是双.
目的
双
在未来版本的MATLAB,默认情况下api选项将更改为使用交错的复杂API (-R2018a).MathWorks建议您创建应用程序并更新现有应用程序,以使用交错的复杂API。另外,使用MX_HAS_INTERLEAVED_COMPLEX宏以确保Matlab版本的所需行为。有关更多信息,请参阅MATLAB支金宝app持MEX函数中的交错复合API.
交错复合API,包括类型的数据访问功能。有关更多信息,请参阅升级MEX文件以使用交错复合API.
Large-array-handling API
要使用Matlab R2018A中的交错复合API构建的Fortran MEX文件,必须使用MATLAB R2018A更新3。
单独复杂的API
将句柄视为图形对象目的,而不是双.把手柄视为双,将此选项结合在一起-DMEX_DOUBLE_HANDLE.
-DMEX_DOUBLE_HANDLE
版本7.2数组处理API,将数组限制为231-1元素
不要使用-compatibleArrayDims选择的时候调用lapack或blas函数.
仅C MEX S函数的默认选项。
例子:墨西哥人-R2018a explore.c
墨西哥人-R2018a explore.c
可选的构建选项,指定为其中一个值。选项可以在任何平台上以任何顺序出现,但在何处指示。
@rspfile.
rspfile.
使用Windows RSP文件。RSP文件是包含命令行选项的文本文件。不支持非ASCII字符。金宝app
-C
仅编译对象文件。不构建二进制MEX文件。
-Client引擎
构建引擎应用程序。
-D.symbolname-D.symbolname=symbolvalue-Usymbolname
-D.symbolname
symbolname
-D.symbolname=symbolvalue
symbolvalue
-Usymbolname
这-D.选项定义C预处理器宏。等同于源文件中的以下内容:
#定义symbolname
#定义symbolnamesymbolvalue
这-U选项删除C预处理器宏的任何初始定义,symbolname.逆的-D.选择。
-U
不加空格D.或者你和symbolname.不要在=符号。
例子:定义编译器指令
-Ffilepath
filepath
覆盖默认编译器选择。filepath配置文件的名称和完整路径,指定为字符串或字符向量。有关使用非默认编译器的信息,请参见改变默认的编译器.
不要使用-F选择引擎应用程序的选项。使用-Client引擎选项。
-F
-G
添加符号信息并禁用优化构建对象代码。用于调试。
-帮助]
显示帮助梅克斯.从操作系统提示符中使用。
-一世pathname.
pathname.
补充.pathname.到要搜索的文件夹列表#包括文件。
#包括
不加空格一世和pathname..
例子:指定包含文件的路径
-L.库名-L.libfolder-L.库名
-L.libfolder-L.库名
libfolder
与动态对象库的链接库名(可选)libfolder.
MATLAB的扩张库名至:
库名. lib或者自由库名. lib- Windows系统
. lib
自由
自由库名. dylib-苹果系统系统
. dylib
自由库名所以- Linux系统
所以
如果使用,-L.选项必须在-L.选择。当使用-L.在Linux上的选项苹果系统系统,还必须设置运行时库路径,如中所述设置运行时库路径.
不加空格L.和库名之间或L.和libfolder.
指定-L.带小写字母的选项L..
要链接静态库,请使用文件名输入参数.
例子:指定库文件的路径
显示,但不执行,命令梅克斯会执行。
例子:预览构建命令
-O
优化对象代码。使用此选项可使用优化编译。默认情况下启用优化。
使用大写字母指定此选项O..
-outdir.目录名
目录名
将所有输出文件放在文件夹中目录名.
例子:创建和链接到单独的对象文件
与产出mexname.
mexname.
覆盖默认的MEX文件命名机制。创建命名为的二进制MEX文件mexname.使用适当的MEX文件扩展名。
例子:使用通配符组合源文件
-设置郎
更改默认编译器以构建郎语言MEX文件或引擎应用程序。使用此选项时,梅克斯忽略所有其他命令行选项。
-沉默的
抑制信息消息。这梅克斯命令仍然报告错误和警告,即使您指定-沉默的.
删除C预处理器宏的任何初始定义symbolname.(逆-D.选择。)
不加空格你和symbolname.
-v.
以详细模式构建。在考虑所有命令行参数后,显示内部变量的值。显示完全评估每个编译和链路步骤。用于故障排除编译器设置问题。
例子:显示详细的构建和故障排除信息
arnamame.=Varvalue.
arnamame.
Varvalue.
向环境变量追加值arnamame..在考虑所有命令行参数后,将处理此选项。
例子:附加编译器选项覆盖默认编译器开关选项
C
C ++
CPP.
Fortran.
语言,指定为这些不敏感值之一。
C编译器,包括c++
c++编译器
Fortran编译器
你可以运行梅克斯从:
matlab命令窗口
Windows系统提示
苹果系统终端
Linux shell.
对于MATLAB之外的命令行用法,梅克斯程序位于指定的文件夹中[matlabroot ' / bin ']在Unix上[matlabroot ' \ bin \ win64 ']在Windows上。
[matlabroot ' / bin ']
[matlabroot ' \ bin \ win64 ']
MEX文件具有与平台相关的扩展名。您可以将用于不同平台的二进制MEX文件放在同一个文件夹中。要识别MEX文件扩展名,请使用mexext功能。
mexext
MEX文件平台依赖扩展
Linux(64位)
mexa64
苹果苹果电脑(64位)
mexmaci64
Windows(64位)
mexw64
使用梅克斯为独立的MATLAB引擎应用程序构建可执行文件,使用-Client引擎选择。
这梅克斯命令不支持包含双引号(金宝app“)字符。
清晰的|电脑|dbmex.|inmem|LoadLibrary.|mexext|PCODE.|prefdir|系统
清晰的
电脑
dbmex.
inmem
LoadLibrary.
PCODE.
prefdir
系统
您有这个示例的一个修改版本。要用编辑打开这个例子吗?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
选择一个网站来获得可用的翻译内容,并看到当地的活动和提供。根据您所在的位置,我们建议您选择:.
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。
与当地办事处联系