matlab 怎么和c++matlab混合编程程

matlab和C++混编的程序如何运行


这是readme文件中的说明:

我按上面操作生成了一个GraphCutSegmentLazy.mexw64文件 另一个生成失败了 但是按照readme说明不是应该生成.dll文件吗?这个列表里本来就有这个mexw64是来运行程序的吗?

}

维普资讯 MATLAB与C/VisualC++matlab混合编程程的实现 f┅ 袁金荣 上海理工大学^髓 学院 (上上海海 200093) 同济大学地下建蔬写:舀 摘 要 首先分析了当前在国内外十分流行的工程设计和系统 真软件包Matlah的优轶點然后介绍了MATLAB与 C/Visualc++matlab混合编程程的两种方法,并主要介绍 Matcom(一种将 programming 1 引言 体 构成了一个方便 、界面友好的用户环境。与Basic、Fortran、 随着计算机技术嘚发展生物工程、图象信号处理、语音信 Pascal、C等编程语言相比,Maflab具有编程简单直观用户界 号处理、雷达工程、信号分析、时间序列分析,以及控制论、系统 面友好开放性强等优点,因此其 自面世以来在国际}+很快得 论,均要涉及到大量的数值计算尤其是矩阵运算.往往会使科 到r推广利用 ,被 IEEE称为国际公认最优秀的科技应用软 研人员的工作进程放慢下来 而且纷繁的编程,一方面会延误 件=它还包括 各类問题的求解工具箱ToolBox可用来求解特 工作 ;另一方面也消耗大量的人力和精力对所编程序进行调 定学科的问题:其主要优点如下: 试 为了克垺这种困难 ,该文舟绍一个非常高效的程序开发工 (1)可扩展性:Matlab最重要的特点是易于扩展它允许用 具一Matlab。这种软件集所有矩阵问题及其它計算问题于一身 户 自行建立指定功能的M文件。对于一个趴事特定领域的工 它易于掌握并可很方便地根据用户自己的情况进行扩展形成 程师来说,不仅可利用Madab所提供的函数及基本工具箱函 新的标准子程序且运算效率极高。MATIAB是一种进行科学 数 还可方便地构造出专用的函數 ,从而大大扩展了其应用范 和工程计算的交互式程序它的基本数据单元是不需要指定维 围 当前支持 Matlab的商用Toolbox(I具箱)有数百种之多。而 数的矩阵因此解决

}

以下是我安装的 Matlab2014a 支持的 C++matlab混合编程譯器的SDK版本(为了上下版本兼容我选择VS2010)

1.Matlab 先配置外部编译环境 (目的是通过外部编译器编译目标 [dll] 动态链接库)

  1. 创建VC++项目,编写如下代码用于验证Matlab動态链接库算法是否调用成功

三、配置Visual C++项目外部依赖项,配置入口

(由于64bit操作系统VC运行环境也需要配置为x64,若是32位操作系统对应设定即可)

鉯上例子虽然简单,但是这条路已经通了对于Matlab这么庞大的算法资源随便做成动态库,为我所用(matla部分算法是不对外开放的)

以上内容是VC调鼡Matlab算法库的实现

增加部分: Matlab 调用 VC 动态链接库实现

意义 :脚本化控制 VC 实现的接口函数,释放工具开发人员(matlab脚本语言不需要编译)

应用场景 : 嵌入式类研发Debug 、调试、自动化验证平台等

2、创建(功能实现接口)API文件:

创建以下三个文件及相应内容并实现 mexFunction 函数。

1、这里创建的VC文件将来就昰Matlab的函数名,建议命名文件时以函数方式命名这是matlab接口协议规定的:每个接口函数以文件名形式存在,所有文件里面创建同一个函数名 mexFunction 包括参数(这个 Function 类似 C 的 main 函数)

,目的是为了给返回值创建一个1x1的矩阵,如果返回值是多个那你就得按照实际情况创建, 它是 mxArray 数据类型

3、鉯下关于VC IDE的相关配置:

(我比较懒就全部上截图了,从上到下依次配置)

5、将vc_add.mexw64 copy 到 Matlab Workspace(里面有我另外一个函数以后每增加一个函数就必须鉯文件的形式增加进来)

这个时候Matlab 可以将刚刚实现的API 接口当內建函数直接使用了。

以上内容是Matlab调用VC++动态链接库的实现部分

增加部分: VC++与Matlab引擎实现混编

二、1、Matlab引擎外部调用需在系统环境变量 Path 增加

四、代码实现-(示例)

Matlab:(自定义加法程序) 实现之后将Mat函数文件保存在你设定的Workspace根目录

附1: Matlab 官方为不同编程语言提供的API接口列表

附2:不同的Matlab版本对操作系统的支持要求及matlab混合编程译器版本要求

附3 : 目标终端机器上运行混编的可執行程序需要有MCR环境官方对应不同版本有不同的MCR

}

我要回帖

更多关于 matlab混合编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信