VC调用MATLAB的CC数学函数库.ppt

上传人:tia****nde 文档编号:12806476 上传时间:2020-05-25 格式:PPT 页数:17 大小:61KB
返回 下载 相关 举报
VC调用MATLAB的CC数学函数库.ppt_第1页
第1页 / 共17页
VC调用MATLAB的CC数学函数库.ppt_第2页
第2页 / 共17页
VC调用MATLAB的CC数学函数库.ppt_第3页
第3页 / 共17页
点击查看更多>>
资源描述
第5章VC+调用MATLAB的C/C+数学函数库,MATLABC/C+数学函数库包含大约400个常用的MATLAB数学函数,通过与VC+混合编程,可以充分利用MATLAB矩阵运算的数学函数库,提高程序开发效率。本章将介绍在VC+环境下调用MATLABC+数学函数库,对函数库中的矩阵进行调用和操作的方法,并给出应用实例。,5.1MATLABC+数学库概述,数学库中的数学函数不仅包括MATLAB内建数学函数,还包括许多由M文件编写的数学函数,其调用方式和使用MATLAB函数一样方便。,5.2VC+环境下调用MATLABC+数学库,若要在VC+工程中调用MATLABC+数学库,需要按照以下3个步骤修改VC+工程创建时的默认设置:(1)设置静态链接库;(2)设置VC+选项卡;(3)在VC+程序中加入MATLAB.hpp头文件。利用MATLAB引擎调用MATLAB命令时,同样要进行这三个步骤的设置。,5.2.1设置静态链接库,对于使用MATLABC+数学库的VC+开发人员来说,在VC+工程中可以直接设置需要加入的静态链接库,如图5.1所示。其中链接库文件sg1.lib和libmwsglm.lib只有在用到MATLABC+图形库时才需要在VC+工程设置中加入。,5.2.2设置C+选项卡中的选项,单击VC+菜单【project】|【settings】子菜单,在【C/C+】选项卡的【Category】的下拉列表框中选择CodeGeneration,在【Userun-timelibrary】下拉列表框中选择MultithreadedDLL,5.2.3设置头文件,在VC+的集成开发环境,由AppWizard应用程序向导新建的应用程序,在工程中包含类的cpp文件开头加入MATLAB.hpp头文件。如果不用MATLABC+图形库,则只需要包含头文件MATLAB.hpp;如果要用的MATLABC+图形库,则需要包含头文件MATLAB.hpp和libmwsglm.hpp。,5.3mwArray阵列及系统函数的调用,MATLABC+数学库与MATLAB及MATLABC数学库类似,首先应该选择一个适用于某类数据的MATLAB阵列类型。MATLABC+数学库使用mwArray类,封装了MATLAB阵列的数据及其基本操作函数。MATLABC+数学库支持使用类或对象mwArray,来作为与MATLAB所有阵列类型的接口,下面将详细介绍矩阵mwArray阵列的调用及系统函数的调用。,5.3.1操作矩阵,工程中经常遇到几百甚至上千阶的矩阵,而这些矩阵往往是通过C+语言生成的,且是由二维数组来存储。由于MATLABC+数学库重载了C+的标准输入cin和输出函数cout,因而可以用cin和cout直接从标准输入/输出设备中输入和输出MATLAB阵列。下面是通过一个实例讲解利用C+标准输入/输出函数输入和输出MATLAB矩阵。(1)启动VC+,新建一个win32工程,工程名为ex1。(2)调用MATLABVC+数学库。按照5.2节中的描述,在VC+环境中设置静态链接库、设置C+选项卡中的选项和设置头文件。(3)修改ex1.cpp文件的代码如下:/*ex1.cpp*/#includestdafx.h#includeMATLAB.hpp/添加头文件#include#ifdefGCC/预编译#ifndefEXIT_SUCCESS/C语言头文件库中定义的一个符号常量#defineEXIT_SUCCESS0#endif#endifstaticdoubledata=1,2,3,4,5,6;/创建静态数组intmain(void)/创建矩阵mwArraymat0(2,3,data);mwArraymat1(3,2,data);/矩阵输出coutmat1;coutmat1endl;return(EXIT_SUCCESS);程序的运行结果如图5.6所示。图5.6程序结果显示,5.3.2操作MATLABmwArray阵列概述,所有的MATLABC+数学库函数的输入都是mwArray类型的MATLAB阵列,因而熟悉MATLABmwArray阵列的操作是使用MATLABC+数学库的基础。mwArray支持以下阵列类型(或类),5.3.3创建MATLABmwArray阵列的操作,创建MATLABmwArray阵列对象有两种方式,一种是通过mwArray类的构造函数创建MATLABmwArray阵列;另一种是其他函数如rand等的返回直接创建MATLABmwArray阵列。,5.3.4数据阵列的操作,类mwArray包含许多有用的构造函数,用户可以用它们来创建阵列。当用语句mwArrayA创建一个新阵列时,将会调用默认构造函数来创建一个末初始化的阵列。注意:不要使用末初始化的阵列作为参数在MATLABC+数学函数中传递,阵列使用前必须被赋值。,5.3.5稀疏矩阵阵列的操作,1.创建稀疏矩阵阵列2.稀疏矩阵的操作,5.3.6字符型阵列的操作,在MATLAB及MATLABC+数学库中,一维字符阵列与普通C/C+语言的字符串相对应,二维字符阵列与普通的C/C+语言的字符串数组相对应。对于MATLAB二维字符阵列而言,每行(即字符串数组中的每个字符串)的长度必须一致。因此,MATLAB二维字符阵列每行的长度必须是最长字符串的长度。,5.3.7单元阵列的操作,采用MATLAB单元阵列可以将不同类型的MATLAB阵列组织到一起,MATLABC+数学库中同样提供了对MATLAB单元阵列的操作。其中常用的函数如表5.5所示。,5.3.8结构体阵列的操作,MATLAB结构体阵列的主要操作函数如表5.6所示。在ATLABC+数学库中,共提供了3种构造结构体阵列对象的方法,5.3.9调用系统函数,单输入/输出的函数调用是最简单的系统函数调用方法,此时调用MATLABC+数学库的函数与普通C/C+函数的调用方法相同。,5.4应用实例,本节将讲解如何使用VC+调用MATLAB的C/C+数学函数库的应用实例。该例子主要介绍输入参数不同情况下如何进行处理,包括输入参数个数确定,输入参数个数不定及多输出参数等情况。当输出参数大于一个时,需要将第二个输出参数的引用作为输入参数传递给调用函数。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!