用mex编译.c文件怎么指定.c文件要包含的头文件

作者&投稿:须寒 (若有异议请与网页底部的电邮联系)
编译MEX 文件需要满足哪些条件~

编译和运行mex应该可以用matlab自带的lcc编译器吧。
不过好像先要配置一下。

C/C++头文件一览
C
#include     //设定插入点
#include      //字符处理
#include      //定义错误码
#include      //浮点数处理
#include //对应各种运算符的宏
#include     //定义各种数据类型最值的常量
#include     //定义本地化C函数
#include      //定义数学函数
#include //异常处理支持
#include //信号机制支持
#include //不定参数列表支持
#include //常用常量
#include      //定义输入/输出函数
#include     //定义杂项函数及内存分配函数
#include     //字符串处理
#include      //定义关于时间的函数
#include      //宽字符处理及输入/输出
#include     //宽字符分类
传统C++
#include     //改用
#include     //改用
#include    //改用
#include    //该类不再支持,改用中的stringstream
————————————————————————————————
标准C++ 
#include     //STL 通用算法
#include      //STL 位集容器
#include //字符处理
#include      //定义错误码
#include      //浮点数处理
#include //对应各种运算符的宏
#include     //定义各种数据类型最值的常量
#include     //定义本地化函数
#include      //定义数学函数
#include      //复数类
#include //信号机制支持
#include //异常处理支持
#include //不定参数列表支持
#include //常用常量
#include      //定义输入/输出函数
#include     //定义杂项函数及内存分配函数
#include     //字符串处理
#include      //定义关于时间的函数
#include      //宽字符处理及输入/输出
#include     //宽字符分类
#include       //STL 双端队列容器
#include     //异常处理类
#include     //文件输入/输出
#include    //STL 定义运算函数(代替运算符)
#include      //定义各种数据类型最值常量
#include       //STL 线性列表容器
#include //本地化特定信息
#include        //STL 映射容器
#include //STL通过分配器进行的内存分配
#include //动态内存分配
#include //STL常用的数字操作
#include     //参数化输入/输出
#include        //基本输入/输出支持
#include      //输入/输出系统使用的前置声明
#include    //数据流输入/输出
#include      //基本输入流
#include //STL迭代器
#include      //基本输出流
#include       //STL 队列容器
#include        //STL 集合容器
#include      //基于字符串的流
#include       //STL 堆栈容器
#include     //标准异常类
#include     //底层输入/输出支持
#include      //字符串类
#include //运行期间类型信息
#include      //STL 通用模板类
#include //对包含值的数组的操作
#include      //STL 动态数组容器
————————————————————————————————
C99增加的部分
#include    //复数处理
#include     //浮点环境
#include   //整数格式转换
#include    //布尔环境
#include    //整型环境
#include    //通用类型数学宏
头文件 ctype.h
字符处理函数: 本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换
----------------------------------------
字符测试是否字母和数字 isalnum
是否字母 isalpha
是否控制字符 iscntrl
是否数字 isdigit
是否可显示字符(除空格外) isgraph
是否可显示字符(包括空格) isprint
是否既不是空格,又不是字母和数字的可显示字符 ispunct
是否空格 isspace
是否大写字母 isupper
是否16进制数字(0-9,A-F)字符 isxdigit
字符大小写转换函数 转换为大写字母 toupper
转换为小写字母 tolower

头文件 local.h
地区化: 本类别的函数用于处理不同国家的语言差异。
----------------------------------------
地区控制 地区设置 setlocale
数字格式约定查询 国家的货币、日期、时间等的格式转换 localeconv



头文件 math.h
数学函数: 本分类给出了各种数学计算函数,必须提醒的是ANSIC标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51)
----------------------------------------

反余弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
余弦 cos
正弦 sin
正切 tan

双曲余弦 cosh
双曲正弦 sinh
双曲正切 tanh

指数函数 exp
指数分解函数 frexp
乘积指数函数 fdexp
自然对数 log
以10为底的对数 log10
浮点数分解函数 modf

幂函数 pow
平方根函数 sqrt

求下限接近整数 ceil
绝对值 fabs
求上限接近整数 floor
求余数 fmod



头文件 setjmp.h io.h
本分类函数用于实现在不同底函数之间直接跳转代码。
----------------------------------------
保存调用环境 setjmp
恢复调用环境 longjmp

头文件 signal.h
信号处理: 该分类函数用于处理那些在程序执行过程中发生例外的情况。
----------------------------------------
指定信号处理函数 signal
发送信号 raise


头文件 stdarg.h
可变参数处理: 本类函数用于实现诸如printf,scanf等参数数量可变底函数。
----------------------------------------
可变参数访问宏
可变参数开始宏 va_start
可变参数结束宏 va_end
可变参数访问宏 访问下一个可变参数宏 va_arg


头文件 stdio.h
输入输出函数:该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现
----------------------------------------
删除文件 remove
修改文件名称 rename
生成临时文件名称 tmpfile
得到临时文件路径 tmpnam
文件访问 关闭文件 fclose
刷新缓冲区 fflush
打开文件 fopen
将已存在的流指针和新文件连接 freopen
设置磁盘缓冲区 setbuf
设置磁盘缓冲区 setvbuf

格式化输入与输出函数
格式输出 fprintf
格式输入 fscanf
格式输出(控制台) printf
格式输入(控制台) scanf
格式输出到缓冲区 sprintf
从缓冲区中按格式输入 sscanf
格式化输出 vfprintf
格式化输出 vprintf
格式化输出 vsprintf

字符输入输出函数
输入一个字符 fgetc
字符串输入 fgets
字符输出 fputc
字符串输出 fputs
字符输入(控制台) getc
字符输入(控制台) getchar
字符串输入(控制台) gets
字符输出(控制台) putc
字符输出(控制台) putchar
字符串输出(控制台) puts
字符输出到流的头部 ungetc

直接输入输出
直接流读操作 fread
直接流写操作 fwrite

文件定位函数
得到文件位置 fgetpos
文件位置移动 fseek
文件位置设置 fsetpos
得到文件位置 ftell
文件位置复零位 remind

错误处理函数
错误清除 clearerr
文件结尾判断 feof
文件错误检测 ferror
得到错误提示字符串 perror

头文件 stdlib.h
实用工具函数: 本分类给出了一些函数无法按以上分类,但又是编程所必须要的。
----------------------------------------
字符串转换函数
字符串转换为整数 atoi
字符串转换为长整数 atol
字符串转换为浮点数 strtod
字符串转换为长整数 strtol
字符串转换为无符号长整型 strtoul

伪随机序列产生函数
产生随机数 rand
设置随机函数的起动数值 srand

存储管理函数
分配存储器 calloc
释放存储器 free
存储器分配 malloc
重新分配存储器 realloc

环境通信
中止程序 abort
退出程序执行,并清除环境变量 atexit
退出程序执行 exit
读取环境参数 getenv
程序挂起,临时执行一个其他程序 system
搜索和排序工具 二分查找(数据必须已排序) bsearch
快速排序 qsort
整数运算函数 求绝对值 abs
得到除法运算底商和余数 div
求长整形底绝对值 labs
求长整形除法的商和余数 ldiv
多字节字符函数 得到多字节字符的字节数 mblen
得到多字节字符的字节数 mbtowc
多字节字符转换 wctomb
多字节字符的字符串操作 将多字节串转换为整数数组 mbstowcs
将多字节串转换为字符数组 mcstowbs

头文件 string.h
字符串处理: 本分类的函数用于对字符串进行合并、比较等操作
----------------------------------------
字符串拷贝 块拷贝(目的和源存储区不可重叠) memcpy
块拷贝(目的和源存储区可重叠) memmove
串拷贝 strcpy
按长度的串拷贝 strncpy
字符串连接函数 串连接 strcat
按长度连接字符串 strncat
串比较函数 块比较 memcmp
字符串比较 strcmp
字符串比较(用于非英文字符) strcoll
按长度对字符串比较 strncmp
字符串转换 strxfrm
字符与字符串查找 字符查找 memchr
字符查找 strchr
字符串查找 strcspn
字符串查找 strpbrk
字符串查找 strspn
字符串查找 strstr
字符串分解 strtok
杂类函数 字符串设置 memset
错误字符串映射 strerror
求字符串长度 strlen

头文件 time.h
日期和时间函数: 本类别给出时间和日期处理函数
----------------------------------------
时间操作函数得到处理器时间 clock
得到时间差 difftime
设置时间 mktime
得到时间 time
时间转换函数 得到以ASCII码表示的时间 asctime
得到字符串表示的时间 ctime
得到指定格式的时间 strftime


序号 库类别 头文件
----------------------------------------
1 错误处理 errno.h
2 字符处理 ctyphe.
3 地区化 local.h
4 数学函数 math.h
5 信号处理 signal.h
6 输入输出 stdio.h
7 实用工具程序 stdlib.h
8 字符串处理 string.h

mex Compile mex-function

Usage:
mex [options ...] file [files ...]

Description:
mex compiles and links source files into a shared library called a
mex-file, executable from within MATLAB. It also builds executable
files for standalone MATLAB engine and MAT-file applications.

Command Line Options Available on All Platforms:
-c
Compile only. Creates an object file but not a mex-file.
-client engine
Build standalone MATLAB engine or MAT-file application.
-compatibleArrayDims
Build a mex-file using the MATLAB Version 7.2 array-handling
API, which limits arrays to 2^31-1 elements. This option is the
default, but in the future the -largeArrayDims option will be
the default.
-D<name>
Define a symbol name to the C preprocessor. Equivalent to a
"#define <name>" directive in the source. Do not add a space
after this switch.
-D<name>=<value>
Define a symbol name and value to the C preprocessor. Equivalent
to a "#define <name> <value>" directive in the source. Do not
add a space after this switch.
-f <optionsfile>
For advanced users. Specify location and name of the mex
configuration file to use. Overrides mex's default compiler
selection mechanism.
-g
Create a mex-file containing additional symbolic information for
use in debugging. This option disables mex's default behavior of
optimizing built object code (see the -O option).
-h[elp]
Display this message.
-I<pathname>
Add <pathname> to the list of directories to search for #include
files. Do not add a space after this switch.
-l<name>
Link with object library. On Windows, <name> expands to
"<name>.lib" or "lib<name>.lib". On Linux, to "lib<name>.so".
On Mac, to "lib<name>.dylib". Do not add a space after this
switch.
-L<folder>
Add <folder> to the list of folders to search for
libraries specified with the -l option. Do not add a space
after this switch.
-largeArrayDims
Build a mex-file using the MATLAB large-array-handling API. This
API can handle arrays with more than 2^31-1 elements when
compiled on 64-bit platforms. -compatibleArrayDims is the
default option.
-n
No execute mode. Display commands that mex would otherwise
have executed, but do not actually execute any of them.
-O
Optimize the object code. Optimization is enabled by default and
by including this option on the command line. If the -g option
appears without the -O option, optimization is disabled.
-outdir <dirname>
Place all output files in folder <dirname>.
-output <resultname>
Create mex-file named <resultname>. The appropriate mex-file
extension is automatically appended. Overrides mex's default
mex-file naming mechanism.
-setup <lang>
Change the default compiler to build <lang> language mex-files.
When this option is specified, no other command line
input is accepted.
-silent
Suppress informational messages. The mex function still reports
errors and warnings, even when you specify -silent.
-U<name>
Remove any initial definition of the C preprocessor symbol
<name>. (Inverse of the -D option.) Do not add a space after
this switch.
-v
Verbose mode. Display the values for important internal
variables after all command line arguments are considered.
Displays each compile step and final link step fully evaluated.
<name>=<value>
Override default setting for variable <name>. This option is
processed after all command line arguments are considered.

Command Line Options Available Only on Windows Platforms:
@<rspfile>
Include contents of the text file <rspfile> as command line
arguments to mex.


matlab mexw32是什么文件
nlhs 输出参数个数,plhs 输出参数指针(nrhs和prhs是输入参数相关的)。注意: 对输出和输入参数的操作都是通过指针的方式进行的。mex文件的编译 将m文件编译成mex文件,可以提高代码的运行速度,隐藏源代码,既能提高程序的执行速度,同时也能保护原作者的劳动成果不被窃取。mex文件的调用 其调用方式与C...

下面c语言函数怎样改编成让matlab 调用C语言的mexfunction文件
没有法。如果有matlab的m源码,可以通过matlab自带的编译器,编译成C\/C++的源代码;如果只有.mex文件,是无法得到C\/C++的源码的。其实在最早的时候,mex文件的后缀名是.dll(现在你明白了吧!),后来才从.dll改成了.mex。

用C#调用MATLAB中的函数或者是M文件,高分请求高手给个思路
命令的格式为:mcc[-option]fun[fun2...][mexfile1...][mlifile...]此函数的作用是将matlab程序fun.m转化为c程序fun.c或者c++程序fun.cpp 转化后的文件默认在当前目录中。若M文件多于一个,那么每个文件对应转化相应的c和c++文件 若源文件包含c文件,则将它们同新生成的c文件一起编译。...

在matlab中怎么编写接口和其他程序链接
不过说回来matlab的图形效果真的很棒),以下是本人在使用matlab与外部程序接口加载调用时的详细心得:1.准备好C语言程序,清楚C语言的入口函数 2.编写mexfunction函数。mexfunction函数为C语言与MATLAB语言的接口函数。调用实例在mylinedetect.c文件中.在MATLAB中调用mex指令编译相关文件,将C语言编译为MEX...

matlab调用已有的mexw32文件出错,怎么回事
你电脑安装的C编译器版本与当初生成mexw32文件的版本不一样,无法使用。也有可能是你的电脑是64位的操作系统,不能用生成的32位mex文件~

如何将Matlab的M文件变成EXE文件
一、生成独立可执行的程序(exe文件)步骤 1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0,我基于VS 2003实现。2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令...

怎样将matlab中的.mat 文件转换为二进制文件,输入到c++程序中使用_百度...
回答:1. “二进制文件“才是最难以使用的格式。.mat本身就是一种二进制文件,所以除了matlab别的软件都不认识。要想跨软件,还是用字符格式的文件来存数据最好。 2. 或者,用C++调用matlab的引擎来解析mat文件也可以。

MATLAB中使用SPAMs工具包,用mex调用函数时出错
编译程序静态链接到某些头文件的目的是为了方便的API调用和写,包含一个动态链接库调用信息和规格在运行时DLL加载至内存提取函数执行。的是,其实,在头文件中的信息被写入的源代码是完全可以实现相同的功能。如果你想学习写的头文件,你可以参考标准的C\/C++库h文件。

matlab\/simulink仿真中normal,Accelerator,Rapid Accelerator模式有什 ...
accelerator和Rapid Accelerator实际会用代码生成变为真正的可执行文件,省略了前期管理模型和动态翻译为机器语言的成本,会提高速度。而这两个应该是不同生成的等级。也因为如此,normal模式只要正常安装了matlab即可正常仿真,而accelerator和rapid accelerator模式需要配置编译器支持,开始仿真前也需要有一个较长...

matlab中的scc命令打包文件能再另一台电脑上直接运行吗?
matlab使用mcc打包的exe文件和mex文件都可以在另一台电脑上运行,不过他们的运行条件所需不同:mcc打包的exe文件转移到另外一个电脑上运行时,需要在目标电脑上安装MATLABCompile Runtine (MCR),这个文件在MATLAB目录下。以2014为例,MATLAB安装目录为C:\\Program Files\\MATLAB\\R2014a\\ 那MCR组件的位置就...

镇宁布依族苗族自治县17873265667: matlab调用c语言 -
穆钱健胃: 如果我有一个用C语言写的函数,实现了一个功能,如一个简单的函数:double add(double x, double y) { return x + y; } 现在我想要在Matlab中使用它,比如输入:>> a = add(1.1, 2.2) 3.3000 要得出以上的结果,那应该怎样做呢?解决方法之一...

镇宁布依族苗族自治县17873265667: 请教关于利用Matlab中“mex”命令编译C程序的问题 -
穆钱健胃: 1.准备好C语言程序,清楚C语言的入口函数2.编写mexfunction函数.mexfunction函数为C语言与MATLAB语言的接口函数.调用实例在mylinedetect.c文件中.在MATLAB中调用mex指令编译相关文件,将C语言编译为MEX文件.3.编译完成后,...

镇宁布依族苗族自治县17873265667: 怎样用Matlab调用已有的C语言程序 -
穆钱健胃: 方法/步骤 准备好C语言程序,一般情况下要清楚C语言的入口函数,比如,如下的C语言函数: ntuple_list linedetect(image_double image) 上述C语言函数中,linedetect为函数名,ntuple_list为输出,image为输入.C语言的源文件包含".h"和...

镇宁布依族苗族自治县17873265667: matlab mex 编译器怎么编译文件 -
穆钱健胃: 通过MEX文件可以在MATLAB中像调用内嵌函数一样调用现有的使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能解决MATLAB循环效率低的缺点,提高MATLAB环境中数据处理的效率.MEX文件的后缀名为 .mexw32 MEX文...

镇宁布依族苗族自治县17873265667: 编译器是以c文件为单位进行编译的,如何知道是对哪个c文件进行编译的? -
穆钱健胃: C文件的#include语句一般包含H文件.一个项目中如果有多个C文件时,编译器需要单独编译各个C文件,会生成相应的目标文件.但是#include语句包含的C文件不会单独生成相应的文件.而生成的目标文件通过连接工具连接成EXE文件.

镇宁布依族苗族自治县17873265667: MATLAB中如何运行c语言程序 -
穆钱健胃: 改成MATLAB语言吧. ============== 你的这个C存在一些问题.主要是地址越界问题.1.for(i=1;i<=n;i++) { e[i]=(a*(e[i-1]))-(int)(a*(e[i-1])); /* 经课本表2.1验证,正确*/ } e的声明是e[n],明显越界了.2.for(i=0;i<=62;i++) /* 63个正态分布的随机数 */ { suiji(sj); /* 调用随机数子函数 */ for(j=1;j<=12;j++) { sum[j]=sum[j-1]+e[sj[j]]; } v[i]=sum[12]-6; } v的声明是v[n],你上面的i已经达到了62也越界了.

镇宁布依族苗族自治县17873265667: 如何让matlab用mex与C连接使用有例子 -
穆钱健胃: 通过专门的API函数进行参数传递:#include "mex.h" // 使用MEX文件必须包含的头文件// 执行具体工作的C函数 double add(double x, double y) { return x + y; }// MEX文件接口函数 void mexFunction(int nlhs,mxArray *plhs[], int nrhs,const mxArray ...

镇宁布依族苗族自治县17873265667: matlab用mcc生成单文件 -
穆钱健胃: mcc函数实现matlab的m文件转化为c,c++文件.命令的格式为:mcc[-option]fun[fun2...][mexfile1...][mlifile...] 此函数的作用是将matlab程序fun.m转化为c程序fun.c或者c++程序fun.cpp 转化后的文件默认在当前目录中.若M文件多于一个,那么每个...

镇宁布依族苗族自治县17873265667: linux 怎么编译c的源程序的?gcc,编译命令是什么? -
穆钱健胃: 编译方法:格式 gcc [option] [sourcefilename]常用的选项最简单的是:gcc hello.c默认的情况下将生成a.out的可执行性文件,只需要在终端上输入./a.out就可以看到执行的结果,如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下...

镇宁布依族苗族自治县17873265667: ubuntu 下怎么编译运行.c文件 -
穆钱健胃: 在命令行编译运行,或者下载安装个c语言的ide. 命令行,编译. gcc xxx.c 默认生成a.out,可以指定输出文件. 运行./a.out 就可以了. ide:codeblocks,eclipse,clion.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网