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. 通过物理模型生成Java代码

    通过物理模型生成Java代码 软件开发过程中,我们一般是先针对数据库建模,物理建模完成后,生成数据库表,编码阶段的时候我们会针对数据库表生成大量的Javaeban或者是实体类 Powertdesign ...

  2. 微软职位内部推荐-Sr SDE-MODC-Beijing

    微软近期Open的职位: JOB TITLE: Senior Software Design EngineerDEPARTMENT: Microsoft Office Division ChinaIM ...

  3. 归档 NSKeyedArchiver

    复杂对象无法象 NSString,NSArray等简单对象一样直接通过 writeToFile 实现持久化,当对复杂对象进行持久化时需要将其转化为 NSData (归档),但获取数据时,将 NSDat ...

  4. 1055: [HAOI2008]玩具取名 - BZOJ

    Description 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用“WING”中任意两个字母代替,使 ...

  5. JavaScript中创建字典对象(dictionary)实例

    这篇文章主要介绍了JavaScript中创建字典对象(dictionary)实例,本文直接给出了实现的源码,并给出了使用示例,需要的朋友可以参考下 对于JavaScript来说,其自身的Array对象 ...

  6. Flume学习——Flume的架构

    Flume有三个组件:Source.Channel 和 Sink.在源码中对应同名的三个接口. When a Flume source receives an event, it stores it ...

  7. grep正则表达式后面的单引号和双引号的区别

    单引号''是全引用,被单引号括起的内容不管是常量还是变量者不会发生替换:双引号""是部分引用,被双引号括起的内容常量还是常量,变量则会发生替换,替换成变量内容! 一般常量用单引号' ...

  8. ****php redis 的使用方法

    phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlie ...

  9. Qt:QT右键菜单

    Qt QTableView 上加右键弹出菜单, 并复制选中的单元格内容到剪贴板中 http://wenku.baidu.com/view/c51cfb63cf84b9d528ea7a29.html h ...

  10. SSL构建单双向https认证

    1.  SSL基本介绍 我们常常在使用网上银行时看到的连接都是以“https”开始的,那么这个https是什么呢?这其实是表示目前连接使用了SSL进加密,能保证客户端到服务器端的通信都在被保护起来,那 ...