1.matlab的安装

连接:http://pan.baidu.com/s/1qXuF7aO

安装32位版本的matlab(在目录下bin文件夹中有两个文件夹,选择win32文件夹下的setup进行安装)

2.matlab mex编译器配置

安装完matlab之后,需要设定对应的c++编译器才能编译.m文件生成可供c++调用的库文件。打开matlab,在命令行输入:mex -setup,选择已安装的vc编译器

我的matlab版本是R2010b,选择的是[2] Microsoft Visual C++ 2008 Express,然后一直选择y直到看到Done

然后继续在命令行中输入:mbuild -setup  ,按照上述类似的方式设置编译器

假设存在一个Add.m的文件需要编译成库文件,

Add.m文件

function C=Add(A,B)

C=A+B;

end

使用命令编译:mcc -W cpplib:libAdd  -T link:lib Add.m

成功编译会在Add.m的路径下生成一些文件:

如果出现错误,可能是编译器配置错误,依次输入一下两行命令查看配置文件:

>> cd(prefdir)

>> edit compopts.bat

set VSINSTALLDIR=  这里如果是空值,需要将电脑中安装的VC路径写到这里

3.创建c++程序调用matlab函数

将前面生成的libAdd.dll"、"libAdd.h"和"libAdd.lib"三个文件拷贝到新建的vc工程中,并配置工程属性,添加matlab安装目录下extern中include文件夹,我的是D:\matlab\extern\include

然后配置库目录:

添加D:\matlab\extern\lib\win32\microsoft这里需要注意的是,该路径下有" mclmcrrt.lib"文件,是我们需要的。

最后配置link连接器,添加:

libeng.lib

libmat.lib

libmex.lib

libmx.lib

mclmcrrt.lib

mclmcr.lib

libAdd.lib(最后这一个是Add.m生成的)

下面的c++程序实现调用

结果:

C/C++下调用matlab函数操作说明的更多相关文章

  1. asp.net下调用Matlab生成动态链接库

    对于这次论文项目,最后在写一篇关于工程的博客,那就是在asp.net下调用matlab生成的dll动态链接库.至今关于matlab,c/c++(opencv),c#(asp.net)我总共写了4篇配置 ...

  2. opencv通过dll调用matlab函数,图片作为参数

    [blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数                   前文介绍了如何“csharp通过dll调用opencv函数,图片作为参数”.而在实 ...

  3. 3D Slicer中文教程(六)—调用matlab函数(MatlabBridge使用方法)

    1.安装MatlabBridge插件 (1)在工具栏找到Extension,点击进入Extension Manager (2)找到MatlabBridge,安装 2.配置MATLAB环境 (1)在模块 ...

  4. C++调用matlab函数

    C++与matlab混合编程——C++调用MATLAB函数 笔者最近在从事一个MFC相关的项目,要求将用Matlab实现的算法通过应用MFC制作成一个小应用.其中有一部分内容需要求一个多元函数的最值. ...

  5. Linux解决Python调用Matlab函数无法导入matlab.engine问题及其他注意事项

    问题描述 Linux系统,根据matlab官方文档说明,利用Matlab中的API来实现Python调用Matlab函数.具体方法见文档: https://ww2.mathworks.cn/help/ ...

  6. call 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法.

    call 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法. 注意:该函数的语法与 apply() 方法的语法几乎完全相同,唯一的区别在于,apply()方法接受的是一个参 ...

  7. C++调用Matlab函数求特征值

    最近需要用到C++和Matlab的混编,记录一下学习过程~ 要实现的是调用Matlab函数,求矩阵前k个最小的特征值及其特征向量. //C++ #include "engine.h" ...

  8. WPF调用Matlab函数方法

    有的时候用C#写图像处理方法,比较费事,不如Matlab简单,但是Matlab又做不出WPF那样的好看界面,怎么办呢. 今天正好我要实现这个功能,就顺便写个小例子,给需要的人做个借鉴. 想要用WPF调 ...

  9. java调用matlab函数

    如何将实验结果在matlab中可视化呢,下面使用java语言编程,调用matlab中的函数: 本人安装的是Matlab7.11.0 (R2010a)和 Eclipse 4.2 : 1)首先设置环境变量 ...

随机推荐

  1. poj2793 素数和

    题目链接:http://poj.org/problem?id=2739 #include<iostream> using namespace std; int count=0; int p ...

  2. 功能测试很low?不能升级到高级测试工程师?

    功能测试很low?不能升级到高级测试工程师? 功能测试很low?功能测试很简单?功能测试就是黑盒测试?功能测试没有技术含量?功能测试工资低?只会功能测试没有竞争力?功能测试这活初中生都可以干?功能测试 ...

  3. Oracle的常用的命令

    --导出数据库 exp test2/test2@trp84 file=e:\test2.dmp owner=test2 --导入数据库 imp test2/test2@orcl file='e:\te ...

  4. Linux下的进程与线程(一)—— 进程概览

    进程是操作系统分配资源的基本单位.线程是操作系统进行运行和调度的基本单位. 进程之间可以切换,以便轮流占用CPU,实现并发.一般进程运行在用户模式下,只能执行指令集中的部分指令. 当进程进行上下文切换 ...

  5. css3控制div上下跳动-效果图

    效果图演示,源代码    

  6. JavaScript(第二十四天)【事件对象】

    JavaScript事件的一个重要方面是它们拥有一些相对一致的特点,可以给你的开发提供更多的强大功能.最方便和强大的就是事件对象,他们可以帮你处理鼠标事件和键盘敲击方面的情况,此外还可以修改一般事件的 ...

  7. 20162318 实验四 Android程序设计

    北京电子科技学院(BESTI) 实 验 报 告 课程:程序设计与数据结构 班级:1623班 姓名:张泰毓 指导老师:娄老师.王老师 实验日期:2017年5月26日 实验密级:非密级 实验器材:带Lin ...

  8. 使用Python定制词云

    一.实验介绍 1.1 实验内容 在互联网时代,人们获取信息的途径多种多样,大量的信息涌入到人们的视线中.如何从浩如烟海的信息中提炼出关键信息,滤除垃圾信息,一直是现代人关注的问题.在这个信息爆炸的时代 ...

  9. Python 实现队列

    操作 Queue() 创建一个空的队列 enqueue(item) 往队列中添加一个item元素 dequeue() 从队列头部删除一个元素 is_empty() 判断一个队列是否为空 size() ...

  10. ubuntu1604使用源码方式安装ruby2.5.0

    本文介绍ubutntu1604环境下源代码方式安装ruby 版本2.5.0 如果内存小于2G可以开启虚拟内存,下面的命令开启4G虚拟内存 sudo dd if=/dev/zero of=/swap b ...