mex 的目的

通过C/C++语言编写代码,在Matlab中将其编译成mex文件主要可以做以下几方面的事情:

1、加快程序的执行速度. Matlab在for上如老牛拉车的速度确实让人抓狂.

2、将Matlab作为C++的开发调试环境.尤其是有大量数据需要处理时,用Matlab观察其中间结果十分方便.

3、据称可以弥补Matlab硬件设备接口的薄弱环节.

今天写了第一个使用MEX.

一个简单的对Matlab普通数值矩阵的操作.

其中Matlab规定的与操作系统版本有关的mwSize,mwIndex, size_t在32位系统上其实本质上就是int,所以

一律用int代替.

#include "mex.h"
#include
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{ int i,j,k;
int index;
double* pr=NULL;
double* pi=NULL;
int M,N; int ndim;
int dims[]; for (i=;i
{ if ((mxIsDouble(prhs[i]))&&(mxGetNumberOfDimensions(prhs[i])==))
{
pr=mxGetPr(prhs[i]);
pi=mxGetPi(prhs[i]);
M=mxGetM(prhs[i]);
N=mxGetN(prhs[i]);
ndim=mxGetNumberOfDimensions(prhs[i]);
mexPrintf("变量%d:\n",i); for (j=;j
{
dims[]=j;
for (k=;k
{
dims[]=k;
index=mxCalcSingleSubscript(prhs[i],ndim,dims);
if (pi==NULL)
{
mexPrintf("%6.2f",pr[index]);
}
else
{
mexPrintf("%6.2f+ %6.2fj",pr[index],pi[index]);
}
}
mexPrintf("\n");
}
} else
{
mexPrintf("input NUMB %d matrix is not 2 dims&double numerical array\n",i); }
} }

Result:

>>mex test.cpp
>> test(a,b,c)变量0: 0.35 0.62 0.83 0.20 0.47 0.59 0.25 0.35 .55变量1: 0.92 0.38 0.53 0.57 0.29 0.57 0.78 0.47 0.76 0.08 0.93 0.01 0.75 0.05 0.13 .34变量2: 0.16+ .87j 0.60+ .43j 0.45+ .14j 0.83+ .85j 0.11+ .08j 0.79+ .08j 0.26+ .91j 0.08+ .87j 0.54+ .62j 0.96+ .24j 0.31+ .40j 0.65+ .18j 0.23+ .58j 1.00+ .35j 0.00+ .12j 0.53+ .26j 0.69+ .26j 0.91+ .55j 0.08+ .51j 0.77+ .18j 0.17+ .80j 0.75+ .15j 0.15+ .14j 0.44+ .40j 0.82+ .24j
>> help test

matlab mex入门简介的更多相关文章

  1. 掌握 Ajax,第 1 部分: Ajax 入门简介

    转:http://www.ibm.com/developerworks/cn/xml/wa-ajaxintro1.html 掌握 Ajax,第 1 部分: Ajax 入门简介 理解 Ajax 及其工作 ...

  2. MongoDB入门简介

    MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...

  3. (转)Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

  4. NodeJS入门简介

    NodeJS入门简介 二.模块 在Node.js中,以模块为单位划分所有功能,并且提供了一个完整的模块加载机制,这时的我们可以将应用程序划分为各个不同的部分. const http = require ...

  5. ASP.NET Core学习之一 入门简介

    一.入门简介 在学习之前,要先了解ASP.NET Core是什么?为什么?很多人学习新技术功利心很重,恨不得立马就学会了. 其实,那样做很不好,马马虎虎,联系过程中又花费非常多的时间去解决所遇到的“问 ...

  6. webservice入门简介

    为了梦想,努力奋斗! 追求卓越,成功就会在不经意间追上你 webservice入门简介 1.什么是webservice? webservice是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓的远 ...

  7. Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

  8. Android精通教程-第一节Android入门简介

    前言 大家好,给大家带来Android精通教程-第一节Android入门简介的概述,希望你们喜欢 每日一句 If life were predictable it would cease to be ...

  9. Nginx入门简介

    Nginx入门简介 Nginx 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二 ...

随机推荐

  1. 如何在windows下安装GIT

    如何在windows下安装GIT 分步阅读 Git是一个免费的.开源的版本控制软件.在Windows上安装git,一般为msysgit,官方下载地址为 http://code.google.com/p ...

  2. python学习笔记24(路径与文件 (os.path包, glob包))

    os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法. >>> import os.path >>> path = '/home/ ...

  3. Linux下反斜杠号"\"引发的思考

    今天在检查home目录时发现有一个名为“\”的文件,觉得很奇怪,从来没见过,就准备用Vim打开看看,很自然地输入命令查看一下,结果居然打不开. ubuntu@ubuntu:~$ vi \> ub ...

  4. 使用Docker解决同一服务器运行不同版本PHP方案。

    前言: 最近公司有两个站点,分别是两种系统进行二次开发,基于LNMP架构的网站.一般想PHP这种非编译型语言想要对外出售源码都会进行加密,加密方法有很多种,大部分都是使用Zend Guard来进行加密 ...

  5. 安装ADT Cannot complete the install because one or more required items could not be found.

    点击进行安装,将会弹出 错误提示是: Cannot complete the install because one or more required items could not be found ...

  6. CI中获取读操作的结果集行数+获取写操作的影响行数

    本质:读操作,用mysql_num_rows函数,写操作用mysql_affected_rows函数 mysql_num_rows() 返回结果集中行的数目.此命令仅对 SELECT 语句有效.要取得 ...

  7. 思科模拟器软件教程---教你如何划分Vlan

    方法/步骤 1.打开Cisco Packet Tracer,点击[交换机],选择第三个图标2960交换机,按住鼠标左键拖动到工作区.这里有很多类型的交换机,但是我们比较常用的是这个. 2.我们选择[终 ...

  8. ORA-12704 字符集不匹配

  9. linux的终端,网络虚拟终端,伪终端(转)

      blog.csdn.net/todd911/article/details/8025540 Linux上许多网络服务应用,如l2tp.pptp.telnet,都用到了伪终端.有朋友在问这方面的概念 ...

  10. 数据关联分析 association analysis (Aprior算法,python代码)

    1基本概念 购物篮事务(market basket transaction),如下表,表中每一行对应一个事务,包含唯一标识TID,和购买的商品集合.本文介绍一种成为关联分析(association a ...