问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

matlab怎么调用mex文件

发布网友 发布时间:2022-04-30 00:03

我来回答

2个回答

热心网友 时间:2022-06-26 18:06

通过MEX文件可以在MATLAB中像调用内嵌函数一样调用现有的使用C语言和Fortran等语言编写的函数,实现了代码重用,同时也能解决MATLAB循环效率低的缺点,提高MATLAB环境中数据处理的效率。MEX文件的后缀名为.mexw32MEX文件的编写和编译需要两个基本条件:一是必须按照MATLAB应用程序接口组件和相关工具,二是要有C语言或Fortran语言的编译器。需要对MATLAB系统进行设置,使MATLAB系统知道使用系统的哪一个C语言编译器,以及其参数和路径。MEX文件系统设置:>>mex–setup按照提示进行,最后出现Done…系统配置完毕。C语言MEX文件的建立C语言MEX文件的建立1.MEX文件的结构a)计算子程序b)入口子程序,voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){/*用户特定的代码….*/}2.创建timestwoalt.c#include"mex.h"voidtimestwo_alt(double*y,doublex){*y=2.0*x;}voidmexFunction(intnlhs,mxArray*plhs[],intnrhs,constmxArray*prhs[]){double*y;doublex;/*检查参数*/if(nrhs!=1){mexErrMsgTxt("Oneinputargumentrequired.");}elseif(nlhs>1){mexErrMsgTxt("Toomanyoutputarguments.");}elseif(!mxIsNumeric(prhs[0])){mexErrMsgTxt("Argumentmustbenumeric.");}elseif(mxGetNumberOfElements(prhs[0])!=1||mxIsComplex(prhs[0])){mexErrMsgTxt("Argumentmustbenon-complexscalar.");}/*为输出参数创建变量*/plhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);/*为参数x、y赋值,x为值,而y为指针(由于MATLAB没有值传递,所以用指针才能得到修改后的y值,不然修改的是y的一个副本,为临时变量,在函数返回时,y值没有变化,不能得到希望的结果)*/x=mxGetScalar(prhs[0]);y=mxGetPr(plhs[0]);/*调用timestwo_alt子函数*/timestwo_alt(y,x);}3.编译链接C语言的MEX文件源程序,在MATLAB的控制窗口中输入:mextimestwoalt.c生成一个名为timestwoalt.mexw32的MEX文件4.运行:在MATLAB的控制窗口中输入x=2;y=timestwoalt(x)输出:y=4MEX文件实现了一种C语言与MATLAB的接口,其实际的计算功能仍在C语言形式的计算子程序中完成,而入口子程序的功能是检查参数以匹配C语言的参数规范(howto?)。当有C语言编写的大型程序时,不必用MATLAB语言重新编写,只要将此C语言程序作为一个计算子程序,然后编写一个入口子程序,完成参数的匹配,然后编译成MEX文件即可。MEX文件的另外一个功能是可以将MATLAB编程中的瓶颈问题,如多重循环等,将此类费时的指令用C语言实现,然后作必要的入口子程序,编译成MEX文件,可以有效地提高MATLAB的效率。S-函数创建器*了C语言S-函数的功能:只能有一个输入信号和一个输出信号,而且只能处理double类型的数据!所以,可用性不大。

热心网友 时间:2022-06-26 18:06

编译器必须安装在C盘嘛????
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
土地入股的定义 ups快递客服电话24小时 贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 我的手机开机时显示字母是“ANDROID”游戏平台是“Mex”请问是什么品牌是什么系统的谢谢! 苏州园区华为体验店有吗?在哪里?我是指官方授权的华为体验店 我在Matlab中设置Mex文件系统。我已经安装了Visual studio 2010, 苏州华为手机专卖店比较正规的在哪里 mex如何指定源文件路径?? 苏州华为体验店正规的在哪里 最近听说ubitmex系统新升级了,大家了解吗? 手机内存英文名翻译 急急急急急急急急急急急急急急急急急急急急急急急... 苏州有华为专卖店吗? 苏州华为手机专卖店在哪里?? 梦见逝世的老爸收养了一个儿子和女儿 梦见收养了一个女孩和一个男孩? 女人梦到收养一个男孩和一个女孩是什么意思? 建设银行支取收入是什么意思 梦见自己收养一个男孩一个女孩? 拼多多和淘宝,哪个开店更好? mysql中sql语句的带参数拼接问题 有谁对OA系统比较了解的,可以详细介绍一下不? 文献翻译求助 i7 6700够用吗 昆山哪里有华为手机专卖的 如何MATLAB2013a在win8-64位系统上能装mex编译器 苏州太仓哪里买华为手机比较正规,比较实惠?我想买一个mate30 5G matlab2012a在win8.1+64bit系统mex-setup安装失败怎么办 华为手机昆山市花桥镇专卖店 matlab2013a中mex命令问题 MATLAB mex 找不到编译器 在苏州哪有荣耀手机专卖店呀 若不在同一个文件夹,matlab怎么使用mex Invalid MEX-file 'E:\vlfeat-0.9.18\toolbox\mex\mexw64\vl_kmeans.mexw64': 找不到指定的模块 什么牌子的护肤品好 matlab 把c文件 编译成mex64 文件 运行时错误399 mexdevget.ocx 有哪位高手知道 MATLABR2014a安装libsvm老是mex -setup出错 mex.h这个文件我的头文件夹里没有啊 求解该怎么办 可以下载吗 华为手机都是双卡双用吗如果是两个卡插上去会不会隐藏一个卡的号码_百度问一问 mysql sql语句两条合并成一条 以下哪项不是5G超高清通看券的福利?A、顶级体育赛事任性看B、可转赠给好友C、 听说下载粤TV手机APP激活会员有很多会员福利可以领,具体有哪些会员福利呢? 怎么通过手机营业厅订购优享福利?