




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第10章MATLAB外部程序接口应用10.1 MATLAB数据接口MA TLAB语言和其他程序设计语言一样,程序运行中的所有变量都保存在称为工作区的内存中,这些变量可以在程序中直接引用。但是工作区的大小是有限的,如果处理的数据较大,就需要和磁盘文件中的数据进行交换。有时要从外部设备中输入数据,有时要把程序处理过的数据输出到外部设备中。MA TLAB提供了多种不同层次的数据输入/输出函数。10.1.1 通用文件I/O操作MA TLAB支持某些特定格式和类型的数据文件(如图形文件、音频/视频文件、电子表格等的读写操作,将该类文件中的数据导入到MA TLAB的工作区,最简单的办法是使用数据导入向导
2、(可通过选择File菜单项中的Import data命令或在命令窗口执行命令uiimport来激活它,而在M文件中则可以使用MA TLAB输入/输出函数。1.文本数据的输入在前面介绍过的load和save函数是MA TLAB中为装载和存储数据提供的工具,但load函数只能读取以ASCII形式存储的,每一行数据为固定长度的文件。如果一个文件中的数据全部由ASCII字符组成,且数据间有间隔符(如空格、逗号、分号、制表位,则文件称为有格式文件。有格式文件可以使用文本输入函数读取数据,其调用格式为:A, B, C, =textread(filename, format, N, param, value
3、其中,A、B、C是用于存放读取数据的向量,filename为待操作的文件,format用以控制读取的数据格式,由%加上格式符组成,常见的格式符如表10-1所示。N指定重复使用该格式的次数,param指定一些特殊操作,value是与特殊操作有关的值,例如,跳过两行标题行可将'headerlines'参数设为2。表10-1 数据格式描述符格式符含义格式符含义%d 有符号的十进制整数%e 指数形式的实数%u 无符号的十进制整数%f 小数形式的实数%s 字符串%c 字符在%之后还可以加上数据宽度,例如%3d,它控制读取的整型数据取3位数字;%10.3f控制读取实型数据取10个字符(含小
4、数点,小数部分占3位。【例10-1】假定文件textdemo.txt中有以下格式的数据:Name English Chinese MathmaticsWang 99 98 100Li 85 77 91 PDF created with pdfFactory Pro trial version MATLAB程序设计与典型应用 MATLAB程序设计与典型应用 MATLAB程序设计与典型应用 MATLAB程序设计与典型应用 MATLAB程序设计与典型应用 MATLAB程序设计与典型应用 MATLAB程序设计与典型应用 MATLAB 程序设计与典型应用 设置编译环境。单击【工具】菜单中的【选择】命令,
5、弹出【选择】对话框,在弹出 的【选择】对话框中选取【目录】选项卡,在【显示目录为】下拉列表框中选择【Include files】 , 在【路径】文本框中添加(假设 MATLAB 的路径为 D:My DocumentsMATLAB)D:My DocumentsMATLAB,然后再在【显示目录为】下拉列表框中选择【Library files】 ,在【路径】 文本框中添加 D:MATLABR2008externlibwin32microsoftmsvc60。 编译环境参数设置如图 10-3 所示。 (a)Include files 设置参数 (b)Library files 设置参数 图 10-3
6、设置编译环境 设置项目连接参数。单击【工程】菜单下的【设置】选项,在弹出的【Project Settings】 libmat.lib 和 libeng.lib, 对话框中选择 【Link】 选项卡, 【对象/库模块】 在 文本框中增加库 libmx.lib、 如图 10-4 所示。 图 10-4 添加必要的库文件 单击【工程】菜单中的【添加工程】选项中的【Files】命令,将编辑好的 v.c 文件加入 到项目中。然后进行编译链接,如果无错误,将生成可执行文件 v.exe。 10.3.3 Fortran 语言 MATLAB 引擎 1Fortran 语言 MATLAB 计算引擎函数 以下列出了常用
7、的 Fortran 语言引擎函数及其功能。 integer *4 function engOpen(startcmd:启动 MATLAB 引擎。 integer *4 function engClose(ep:关闭 MATLAB 引擎。 integer *4 function engGetVariable(ep, name:从 MATLAB 引擎中获取一个 MATLAB 矩阵。 integer *4 function engPutVariable(ep, name, pm: MATLAB 引擎发送一个 MATLAB 矩阵。 向 integer *4 function engEvalString
8、(ep, command:执行一个 MATLAB 命令。 其中,startcmd 为引擎数(字符型) ,ep 为引擎指针(整型) ,name 为矩阵名(字符型) ,pm 为 mxArray 矩阵指针,command 为 MATLAB 命令(字符型) 。 310 PDF created with pdfFactory Pro trial version 第 10 章 MATLAB 外部程序接口应用 2Fortran 语言 MATLAB 计算引擎的编程 【例 10-11】在 Fortran 源程序中调用 MATLAB 引擎绘制多峰函数矩阵。 代码如下: integer engEvalString,
9、engClose,engOpen integer ep,status ep=engOpen('MATLAB' if(ep=0 then write(6,*'Can' 't start MATLAB engine' stop endif status=engEvalString(ep,'mesh(peaks;' pause if(engclose(ep/=0 then write(6,*'Can' 't close MATLAB engine' endif end 3Fortran 语言 MATLAB
10、 计算引擎的编译 在 MATLAB 命令窗口使用 Visual Fortran 6.0 编译器编译计算引擎程序和读写 MAT 文件的 程序的选项文件为 df60engmatopts.bat。假设例 10-11 保存为 eng.f90,则编译该文件的方法是: optsfile=matlabroot 'binwin32mexoptsdf60engmatopts.bat' mex('-f',optsfile, 'eng.f90' 在 Visual Fortran 6.0 集成环境中编译 Fortran 源程序的方法和步骤同 C 语言。 如果编译链接 无
11、误,将生成可执行文件 eng.f90.exe,运行结果如图 10-5 所示。 图 10-5 利用 Fortran 计算引擎绘制的曲线 10.4 Visual C+与 MATLAB 接口 MATLAB 开发环境提供了丰富的应用程序接口(API)库函数实现 C、C+与 MATLAB 的 混合编程,通过 mex、mbuild、mcc 编译命令可以实现把 M 文件编译成 Visual C+环境下直接 调用的 C/C+文件,或者把 C 文件编译成在 MATLAB 开发环境中直接调用的可执行文件。在 Visual C+中实现与 MATLAB 开发环境的接口主要有以下几种方法。 (以下略,请支持正版图书)
12、311 PDF created with pdfFactory Pro trial version MATLAB 程序设计与典型应用 节选自: 内 容 简 介 MATLAB 语言是现今在工程研究领域应用范围很广的一门计算机语言。本书讲解了 MATLAB 语言运算、 程序设计、图形表示,同时对 MATLAB 语言在工程中的经典应用进行了详细介绍。 本书共分 11 章,包括 MATLAB 简介、MATLAB 数值计算及应用、符号运算及应用、MATLAB 程序设计 MATLAB 绘图功能、 MATLAB 在模糊控制系统中的应用、 MATLAB 在人工神经网络中的应用、 MATLAB 技术、 在自动控制中的应用、MATLAB 在数字信号中的应用、MATLAB 外部程序接口应用、MATLAB 在其他领域 的应用等内容。 本书结构清晰、内容丰富、论述翔实,适合学习 MATLAB 的本科生、研究生阅读,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文化娱乐行业消费者忠诚度研究:细分市场策略分析
- 基于未来五年能源行业变革的储能技术多元化发展态势分析报告
- 2024年“安全生产月”消防演练活动简报
- 资源型城市绿色转型中环境监测与评估体系研究与实践报告
- 2025年工业互联网平台网络流量整形技术在互联网医疗健康中的应用报告
- 2025年电商直播中主播与品牌合作模式市场趋势分析及风险预警报告
- 2023年西方经济学宏观部分高鸿业第四版答案及考试题库
- 2023年长春版六年级语文下册全册作文教案
- 2025年部编版语文六年级上册第一单元过关测试题(含答案)
- 二零二五年度海外房产销售居间服务协议
- 2025年广元市事业单位继续教育公需科目试题及答案
- 2025河南新乡中和农信延津分公司招聘6人笔试历年参考题库附带答案详解
- 2025新村级后备干部考试题库(附含答案)
- 2025夏秋贵州省旅游产业发展集团有限公司员工招聘115人笔试历年参考题库附带答案详解
- 2025年三明宁化县翠江镇招聘公益性岗位考试笔试试题
- 江苏徐州经济技术开发区教育系统调配教师笔试真题2024
- etc客服电话管理办法
- 系统思维培训
- DB42T 1049-2015 房产测绘技术规程
- 数据安全意识培训
- 肿瘤患者夏季养生指南
评论
0/150
提交评论