이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。
C mex파일응용프로그램
mxArray
를사용하여matlab®R2017b이하버전에서작동하는C프로그램작성직접작성한C또는c++프로그램을내장함수인것처럼MATLAB명령줄에서호출할수있습니다。이러한프로그램을mex함수라고하며,함수의이름이mex파일의이름입니다。일부응용프로그램에는mex함수가적합하지않습니다。MATLAB은컴파일된언어에서시간이많이소요되는로우레벨의프로그래밍작업을줄여주는생산성높은환경입니다。일반적으로는matlab에서프로그래밍을수행하십시오。응용프로그램에필한경우가아니면mex함수를사용하지마십시오。
Mex함수를생성하려면matlab api를사용하여프로그램을작성하십시오。이러한라이브러리에있는함수를사용하면墨西哥人함수와작업공간간에데이터를원활하게전송할수있습니다。Matlab api를선택하려면다음을고려하십시오。
MathWorks는MATLAB数据API에정의된대로최신c++기능을사용하여mex함수를만들것을권장합니다。자세한내용은c++ mex응용프로그램항목을참조하십시오。
墨西哥人함수가MATLAB R2017b이하버전에서실행되어야하거나사용자가C언어로작업하는것을선호하는경우C矩阵API및c mex api의함수를사용하십시오。이러한api는matlab
mxArray
데이터구조를사용합니다。이페이지에나와있는함수와항목은mxArray
를기반으로합니다。
참고
C矩阵API나MATLAB数据API중하나에서함수를선택하십시오。이러한api의함수는혼합하여사용할수없습니다。
墨西哥人
함수를사용하여소스파일을실행가능한프로그램으로빌드하십시오。Mex파일을다른matlab사용자와공유할수도있습니다。
S-Function을작성하는방법에대한자세한내용은Simuli金宝appnk®문서를참조하십시오。
다른사람이만든mex함수를호출하려면墨西哥파일함수항목을참조하십시오。
C / c++프로그램이있고이프로그램에서MATLAB함수를호출하려면引擎API중하나를사용하십시오。
C/ c++프로그램에서matlab데이터를읽고쓰려면Mat파일데이터를읽기위한matlab c API항목을참조해사용하십시오。
C mex API
mexFunction |
C矩阵API를사용하여빌드된C/ c++ MEX함수에대한진입점 |
mexFunctionName |
当前MEX函数名称 |
mexAtExit |
注册功能调用时,MEX功能清除或MATLAB终止 |
mexCallMATLAB |
调用MATLAB函数、用户自定义函数或MEX函数 |
mexCallMATLABWithTrap |
调用MATLAB函数、用户自定义函数或MEX文件,捕获错误信息 |
mexEvalString |
执行MATLAB调用方工作区中的命令 |
mexEvalStringWithTrap |
执行MATLAB命令,并捕获错误信息 |
mexGetVariable |
从指定工作区复制变量 |
mexGetVariablePtr |
指向另一个工作区变量的只读指针 |
mexPutVariable |
数组从MEX函数到指定的工作空间 |
mexGet |
指定图形属性的值 |
mexSet |
设置指定图形属性的值 |
mexPrintf |
ANSICPrintf스타일출력루틴 |
mexErrMsgIdAndTxt |
显示带有标识符的错误消息并返回到MATLAB提示 |
mexWarnMsgIdAndTxt |
带有标识符的警告消息 |
mexIsLocked |
确定MEX文件是否被锁定 |
mexLock |
禁止从内存中清除MEX文件 |
mexUnlock |
允许从内存中清除MEX文件 |
mexMakeArrayPersistent |
在MEX文件完成后保持数组 |
mexMakeMemoryPersistent |
使内存由MATLAB在MEX函数完成后继续存在 |
도움말항목
C mex함수작성하기
- C소스mex파일만들기
이예제에서는C矩阵API를사용하여빌드한
arrayProduct
C mex함수를만드는방법을보여줍니다。 - Mex함수의소스코드예제
墨西哥함수예제의소스코드에대한링크。
- Matlab데이터
墨西哥파일에서
mxArray
사용。 - 内存管理问题
管理规则
mxArray
内存。 - C矩阵API를사용하여c++ MEX함수생성하기
矩阵C API를사용하여빌드한墨西哥人함수를만들때고려해야할c++언어문제。 - C MEX文件中的错误处理
方法打印错误信息mexErrMsgIdAndTxt
函数。 - 在MEX文件中处理大文件I/O
如何在MEX文件中使用64位文件I/O。 - 大多数派生类的测试
如何从MEX文件输入参数中排除内置类型的子类。
빌드환경테스트하기
- C mex함수빌드하기
이예제에서는예제c mex함수
arrayProduct
를빌드하는방법을보여줍니다。
C矩阵API버전
- 升级MEX文件以使用交错复杂API
MATLAB版本9.4 (R2018a)支持复数的交错表金宝app示。
- 64비트api를사용하도록mex파일업그레이드하기
MATLAB버전9.2 (R2017a)에서는기본적으로64비트API를사용하여墨西哥人파일을빌드합니다。
- 升级MEX文件以使用图形对象
MATLAB Version 8.4 (R2014b)将句柄的数据类型从双
来对象.
墨西哥파일공유하기
- 在MEX文件中记录生成信息
此示例显示如何记录xtimesy
在Windows上构建的MEX文件®平台使用微软®Visual c++®编译器。
문제 해결
빌드 오류
- MEX失败时如何获取帮助
要帮助诊断编译器设置和生成错误,请调用墨西哥人
带有verbose选项-v的函数。 - 编译MEX文件失败
编译MEX文件失败时的处理方法。 - 解决MEX API不兼容问题
有关警告和错误消息的更多信息。 - MinGW-w64로C/ c++ MEX파일을컴파일할때의문제해결과제한사항
MinGW-w64컴파일러로빌드한MEX파일문제해결。 - 기호mexFunction이확되지않거나정의되지않음
모든mex파일에는mexFunction
이필합니다。
런타임오류
- 유효하지않은mex파일오류
유효하지않은mex파일오류발생시수행할작업。 - 墨西哥버전호환성
최상의결과를얻으려면사용중인MATLAB버전으로빌드한墨西哥人파일을실행하십시오。 - 墨西哥플랫폼호환성
다른소스에서이진墨西哥人파일을가져오는경우,이파일이해당파일을실행하려는플랫폼에맞게컴파일되었는지확인해야합니다。 - MEX API不是线程安全的
不要在单独的线程上从MEX文件调用MATLAB的单个会话。 - MEX文件分割故障
当MEX文件导致分段违反或断言时该怎么办。 - MEX文件产生错误的结果
当MEX生成错误答案时该怎么办?
디버그하기
- 微软Windows플랫폼에서디버그하기
Microsoft Visual Studio®를사용한디버그를위한제사항。 - Mac平台调试
此示例显示如何调试上的MEX文件Mac平台。 - Linux平台上的调试
本示例介绍如何在Linux下调试MEX文件®平台。