




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章 VC+调用MATLAB的C/C+数学函数库,MATLAB C/C+数学函数库包含大约400个常用的MATLAB数学函数,通过与VC+混合编程,可以充分利用MATLAB矩阵运算的数学函数库,提高程序开发效率。本章将介绍在VC+环境下调用MATLAB C+数学函数库,对函数库中的矩阵进行调用和操作的方法,并给出应用实例。,5.1 MATLAB C+数学库概述,数学库中的数学函数不仅包括MATLAB内建数学函数,还包括许多由M文件编写的数学函数,其调用方式和使用MATLAB函数一样方便。,5.2 VC+环境下调用MATLAB C+数学库,若要在VC+工程中调用MATLAB C+数学库,需要按照以下3个步骤修改VC+工程创建时的默认设置: (1)设置静态链接库; (2)设置VC+选项卡; (3)在VC+程序中加入MATLAB.hpp头文件。 利用MATLAB引擎调用MATLAB命令时,同样要进行这三个步骤的设置。,5.2.1 设置静态链接库,对于使用MATLAB C+数学库的VC+开发人员来说,在VC+工程中可以直接设置需要加入的静态链接库,如图5.1所示。其中链接库文件sg1.lib和libmwsglm.lib只有在用到MATLAB C+图形库时才需要在VC+工程设置中加入。,5.2.2 设置C+选项卡中的选项,单击VC+菜单【project】|【settings】子菜单,在【C/C+】选项卡的【Category】的下拉列表框中选择Code Generation,在【Use run-time library】下拉列表框中选择Multithreaded DLL,5.2.3 设置头文件,在VC+的集成开发环境,由AppWizard应用程序向导新建的应用程序,在工程中包含类的cpp文件开头加入MATLAB.hpp头文件。如果不用MATLAB C+图形库,则只需要包含头文件MATLAB.hpp;如果要用的MATLAB C+图形库,则需要包含头文件MATLAB.hpp和libmwsglm.hpp。,5.3 mwArray阵列及系统函数的调用,MATLAB C+数学库与MATLAB及MATLAB C数学库类似,首先应该选择一个适用于某类数据的MATLAB阵列类型。MATLAB C+数学库使用mwArray类,封装了MATLAB阵列的数据及其基本操作函数。MATLAB C+数学库支持使用类或对象mwArray,来作为与MATLAB所有阵列类型的接口,下面将详细介绍矩阵mwArray阵列的调用及系统函数的调用。,5.3.1 操作矩阵,工程中经常遇到几百甚至上千阶的矩阵,而这些矩阵往往是通过C+语言生成的,且是由二维数组来存储。由于MATLAB C+数学库重载了C+的标准输入cin和输出函数cout,因而可以用cin和cout直接从标准输入/输出设备中输入和输出MATLAB阵列。 下面是通过一个实例讲解利用C+标准输入/输出函数输入和输出MATLAB矩阵。 (1)启动VC+,新建一个win32工程,工程名为ex1。 (2)调用MATLAB VC+数学库。按照5.2节中的描述,在VC+环境中设置静态链接库、设置C+选项卡中的选项和设置头文件。 (3)修改ex1.cpp文件的代码如下: /* * * * * * * * * * * * * * * * * * ex1.cpp* * * * * * * * * * * * * * * * * */ #include “stdafx.h“ #include “MATLAB.hpp“ / 添加头文件 #include #ifdef GCC /预编译 #ifndef EXIT_SUCCESS /C语言头文件库中定义的一个符号常量 #define EXIT_SUCCESS 0 #endif #endif static double data = 1, 2, 3, 4, 5, 6 ; / 创建静态数组 int main(void) / 创建矩阵 mwArray mat0(2, 3, data); mwArray mat1(3, 2, data); / 矩阵输出 cout mat1; cout mat1 endl; return(EXIT_SUCCESS); 程序的运行结果如图5.6所示。 图5.6 程序结果显示,5.3.2 操作MATLAB mwArray阵列概述,所有的MATLAB C+数学库函数的输入都是mwArray类型的MATLAB阵列,因而熟悉MATLAB mwArray阵列的操作是使用MATLAB C+数学库的基础。mwArray支持以下阵列类型(或类),5.3.3 创建MATLAB mwArray阵列的操作,创建MATLAB mwArray阵列对象有两种方式,一种是通过mwArray类的构造函数创建MATLAB mwArray阵列;另一种是其他函数如rand等的返回直接创建MATLAB mwArray阵列。,5.3.4 数据阵列的操作,类mwArray包含许多有用的构造函数,用户可以用它们来创建阵列。当用语句mwArrayA创建一个新阵列时,将会调用默认构造函数来创建一个末初始化的阵列。 注意:不要使用末初始化的阵列作为参数在MATLAB C+数学函数中传递,阵列使用前必须被赋值。,5.3.5 稀疏矩阵阵列的操作,1.创建稀疏矩阵阵列 2.稀疏矩阵的操作,5.3.6 字符型阵列的操作,在MATLAB及MATLAB C+数学库中,一维字符阵列与普通C/C+语言的字符串相对应,二维字符阵列与普通的C/C+语言的字符串数组相对应。对于MATLAB二维字符阵列而言,每行(即字符串数组中的每个字符串)的长度必须一致。因此,MATLAB二维字符阵列每行的长度必须是最长字符串的长度。,5.3.7 单元阵列的操作,采用MATLAB单元阵列可以将不同类型的MATLAB阵列组织到一起,MATLAB C+数学库中同样提供了对MATLAB单元阵列的操作。其中常用的函数如表5.5所示。,5.3.8 结构体阵列的操作,MATLAB结构体阵列的主要操作函数如表5.6所示。在ATLAB C+数学库中,共提供了3种构造结构体阵列对象的方法,5.3.9 调用系统函数,单输入/输出的函数调用是最简单的系统函数调用方法,此时调用MATLABC+数学库的函数与普通C/C+函数的调用方法相同
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度离婚后共同财产分割与子女生活费保障合同
- 2025年石料加工企业环保设施委托管理协议
- 2025年生态建设专项栽树绿化工程承包协议
- 2025年新能源汽车租赁及税收减免专项合作协议
- 2025年甲级商务楼出售代理合同书
- 海参基本知识培训内容课件
- 2025年航空航天设备整体安装与性能验证合同模板
- 2025年度航天卫星关键部件加工供应合同
- 2025年白酒企业品牌形象升级战略合作协议
- 2025年医院与多险种承保机构医疗意外责任保险合作协议书
- 中学学生会检查细则说明表格
- TLYCY 3071-2024 森林草原防火无人机监测技术规范
- 《急诊科患者气道管理》课件
- 人教版初中九年级全册英语单词表(完整版)
- 合伙人股权激励制度
- 导尿管相关尿路感染预防与控制
- 《新媒体写作与传播(第2版)》教学大纲、课程标准、习题答案
- 骨质疏松症完整版本
- 国企投资后评价操作实务
- 《头发头皮生理学》课件
- 中国古代文学史明代文学
评论
0/150
提交评论