当前位置: 首页 > news >正文

南京网站建设王道下拉??/外贸网站推广怎么做

南京网站建设王道下拉??,外贸网站推广怎么做,免费网站优化,成都市建设网站公司Matlab:编译性语言 优点:方便的实现编程过程中的交互,免去了编译过程缺点:执行速度慢!!解决方法: ①尽量使用矩阵运算代替循环语句,但实际情况中难以找到等效的矩阵运算&#xff1b…

Matlab:编译性语言

  • 优点:方便的实现编程过程中的交互,免去了编译过程
  • 缺点:执行速度慢!!
  • 解决方法
    ①尽量使用矩阵运算代替循环语句,但实际情况中难以找到等效的矩阵运算;
    ②C/C++和Matlab混合编程—mex接口函数

mex概述

  1. mex是Matlab提供的一种混合编程方式。
  2. 通过mex,用户可以在Matlab中调用C/C++或者Fortran编写的计算程序,加速Matlab内部的矩阵运算(尤其是加速Matlab代码中的for循环)。
  3. mex本质上是一个动态链接库文件,可以被Matlab动态加载并执行。

mex文件的结构及讲解

#include "mex.h" 
void mexFunction(int nlhs, mxArray *plhs[],int nrhs,const mxArray *prhs[]){  // chunk
}
  • mex.h"引入mex编程相关的函数即类型定义
  • mex文件在不同平台下有不同的扩展名,例如win32平台下的扩展名为.mexw32,可以通过mexext命令查看mex文件的扩展名。
  • mex文件本质上是一个动态链接库文件,其只有一个导出函数,就是mexFunction。mexFunction类似于Windows DLL文件中的DLLMain函数或者普通可执行程序中的main函数。
  • 注意:每个mex文件中都应该存在这四个参数,根据你要用的C函数进行设置。重点是搞清楚想要转化的函数输入和输出参数,包括个数以及类型。
    int nlhs, mxArray *plhs[],int nrhs,const mxArray *prhs[]
    • nlhs代表的是输出参数的个数。
    • plhs是一个指针数组,里面的指针指向mxArray类型,每一个指针指向一个输出。
    • nrhs代表的是输入参数的个数。
    • prhs是一个指针数组,里面的指针指向mxArray类型,每一个指针指向一个输入。

由于mex中经常需要操作Matlab数组或者矩阵,所以经常会用到matrix.h中定义的一些mx_前缀的函数,最常用的为以下几个:

  • mxGetScalar(prhs[0]) :把通过prhs[0]传递进来的mxArray类型的指针指向的数据赋给C程序里的变量**(针对标量)** ;
  • mxGetPr(prhs[0]) :从指向mxArray类型数据的prhs[0]获得了指向double类型的指针 (针对矢量矩阵)
    • mxGetM(prhs[0]): 获得矩阵的行数
    • mxGetN(prhs[0]): 获得矩阵的列数
  • mxCreateDoubleMatrix(int m, int n, mxComplexity ComplexFlag)
    :实现内存的申请,其中,m:待申请矩阵的行数 ; n:列数
    (要输出参数,必须先申请相应大小的内存)

实例

① 明确想要在matlab里调用的原始C语言函数

double mexSimpleDemo(double *y,double a,double b){   return *y=(a>b)?a:b;}

分析:输入参数为a和b,个数为2,类型为标量。
输出参数为y,个数为1,类型为矢量。

②编写mex接口函数,存为.c文件。这个文件不一定要在vs中写,可以在matlab里创建一个.c后缀的文件,甚至可以在txt中写好,将后缀改为.c。写完该函数之后,将这个函数复制到matlab文件夹里即可。

double mexSimpleDemo(double *y,double a,double b){return *y=(a>b)?a:b;}void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[]){double *y; //输出参数1个double m,n;//输入参数2个m=mxGetScalar(prhs[0]);//获取第一个输入参数a n=mxGetScalar(prhs[1]);  //获取第二个输入参数bplhs[0]=mxCreateDoubleMatrix(1,1,mxREAL);//为输出参数y申请1*1的内存块y=mxGetPr(plhs[0]);//将输出y加到申请的内存块上mexSimpleDemo(y,m,n);//调用上面的C语言函数}

③在Matlab函数中创建一个.m文件进行测试:
mex mexSimpleDemo.c
a=mexSimpleDemo(5,3)
结果如下:a=5

http://www.lbrq.cn/news/1238365.html

相关文章:

  • 徐州市中宇建设工程有限公司网站/万能优化大师下载
  • 建行网站/网页搜索优化
  • 北京网站制作公司招聘信息/全球搜官网
  • 如何用css做网站/工厂管理培训课程
  • wordpress 蓝色主题/百度seo发帖推广
  • 奉化建设网站/推广普通话演讲稿
  • 深圳建设网站上市/营销推广工作内容
  • 网站建设与管理的现状/百度首页排名优化平台
  • 网站开发参考文献期刊/google广告投放
  • wordpress add_action/武汉排名seo公司
  • 大型集团网站建设/企业网站设计规范
  • 许昌做网站公司报价/域名ip查询入口
  • 青岛做网站建网站/站长统计幸福宝2022年排行榜
  • 网站建设及维护业务服务合同/搜索词分析
  • 安宁网站建设 熊掌/怎么理解搜索引擎优化
  • 河北网络推广/大连seo外包平台
  • 建设淘宝网站需要多少钱/百度营销中心
  • 南京做网站多少钱/有效获客的六大渠道
  • 海口网站运营托管咨询/软文投放平台有哪些
  • 罗岗网站建设公司/长沙靠谱的关键词优化
  • 网站开发类毕业设计/seoapp推广
  • 网站制作学校找哪家/有利于seo优化的是
  • 做建材哪个网站平台好/百度大数据
  • java社交网站开发/网站收录查询爱站
  • 网站开发培训流程/网站建设费用明细表
  • wordpress导航仿制/安卓系统优化app
  • 广东省高水平建设专业网站/关键词指数查询工具
  • 企业年金的作用及意义/试分析网站推广和优化的原因
  • 网站建设需要多钱/网站流量分析
  • 互动网站欣赏/百度怎么投放自己的广告
  • AOP动态代理
  • Ubuntu22.4部署大模型前置安装
  • Unix 发展史概览
  • 蛇形卷积介绍
  • 探索延迟生效变量类:一种灵活的状态管理机制
  • cv弹窗,退款确认弹窗