程序接口课件_第1页
程序接口课件_第2页
程序接口课件_第3页
程序接口课件_第4页
程序接口课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章文件IO&程序接口文件IO高级例程低级例程编程示例程序接口1.6.1文件IO数据导入/导出: MATLAB提供了强大的数据处理能力,但是在数据处理之前,可能需要导入数据,处理完之后,可能需要导出数据。

例子:有一excel文件(oilprice_simple.xls)存放了石油价格的数据,想要绘图显示时间-价格曲线,如何处理?Note:绘图等都没有问题了,但是数据如何从excel导入到matlab环境?2.6.1文件IOMatlab提供了如下文件读写的方式:1)高级例程:matlab特有的mat文件

指令:save、load;2)低级例程:一般的二进制文件指令:fopen、fread、fwrite、fclose3)其他常见文件类型的操作:

excel文件、图像、视频avi等;3.6.1文件IO

Mat文件格式:文件头部+变量名+变量数据。1)头部:包括MATLAB版本信息、使用的操作系统平台和文件创建时间。2)数据:按照数据类型、数据长度和数据三个部分保存的。

4.6.1文件IO6.1.1高级例程1)save:将当前工作空间中的变量保存成MAT文件,

2)load:将MAT文件中的数据导入到MATLAB的工作空间中。note:load和save指令不仅能够加载和保存MAT格式的数据文件,而且还能够加载一般的文本格式文件。5.

save指令基本语法:1)savefilenamevar1var2......

将工作空间中的变量var1、var2等保存到指定文件中;2)save('filename',......)

save指令的函数格式用法例子:创建一个magic矩阵,并保存。

6.

save指令例子:创建一个magic矩阵A,求其逆矩阵B,将A、B保存到magic.mat文件中去。Code(save_load_exam.m)magicMat=magic(4);magicInv=inv(magicMat);savemagic.matmagicMatmagicInvNote:save指令后不用加分号“;”。

7.

load指令:

save-保存(write);load—载入(read)load指令的基本语法:1)loadfilename

将指定文件中所有的变量加载到当前的工作空间2)loadfilenamevar1var2......将指定文件中指定的变量加载到当前工作空间8.

load指令:例子:将magic.mat载入matlabworkspace。

code:(save_load_exam.m)

loadmagic.matdisp(magicMat);disp(magicInv);

9.6.1文件IO6.1.2文本文件操作

针对其他常用的文件格式(非mat文件)。10.6.1文件IO例子:

从excel文件读取石油价格数据,并保存到mat文件。Code

(oil_price_process.m)fnm='oilprice_simple.xls';dat=xlsread(fnm);%读取对应的xls文件year=dat(:,1);pday=dat(:,2);pnow=dat(:,3);saveoilprice.matyearpdaypnow;

11.6.1文件IO6.1.2低级例程

底层的文件操作,包括基本的open、close、read、write。1)打开文件fid=fopen('filename','flag');其中,flag为控制文件读写的标识符,它的取值可以为*r表示打开的文件进行读的操作。*w表示打开的文件进行写的操作,若文件不存在则创建新的文件。12.6.1文件IO6.1.3低级例程1)打开文件

note: 1)若能够成功地打开文件,则fid为非负的整数,否则为-1。

2)关闭文件:

status=fclose(fid)若函数运行成功,则status为0,否则为-1。

13.3)读写数据

MATLAB提供了两大类低级文件I/O函数进行文件内容的读写:1)二进制文件读写函数

2)文本文件读写函数

note:底层例程类似c语言。14.6.1文件IO6.1.4其他类型文件的操作1)图像:imread、imwrite等2)视频15.6.1文件IO6.1.4例子

例子:最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作。Matlab支持的主要数据文件类型和对应函数如下:

16.6.1文件IO导入文本文件

文本文件需要具备统一的行列模式,使用分隔符作为数据项间隔,这些分隔符包括空格、逗号、tab、分号或其它。数据文件可能附带标题行和行列头标签。17.数值数据

对于数值数据可以直接使用load函数装载,例如my_data.txt中数据如下:

12345

678910

命令A=load('my_data.txt')装载该文本文件数据。

如果数值数据使用其它分隔符,可以使用dlmread读入,假设my_data.txt中数据如下:

7.2;8.5;6.2;6.6

5.4;9.2;8.1;7.2

命令A=dlmread('my_data.txt',';')读入该数据。18.包含行列标签的数值数据

例如:

Grade1Grade2Grade3

78.855.945.9

99.566.878.0

89.577.056.7

fid=fopen('grades.dat','r');

grades=textscan(fid,'%f%f%f',3,'headerlines',1);

fclose(fid);19.包含字符和数值的混合数据

使用textread函数读入20.导出文本文件

save函数

A=[1234;5678];

savemy_data.outA–ASCII

dlmwrite函数

dlmwrite('my_data.out',A,';')

21.xlsinfo获得文件信息使用命令[type,sheets]=xlsfinfo(filename)返回文件类型type和工作表信息。如:[type,sheets]=xlsfinfo('tempdata.xls')

22.Xlswrite导出数据d={'Time','Temp';1298;1399;1497}

命令xlswrite('tempdata.xls',d,'Temperatures','E1')将单元格数组d的数据写出至tempdata.xls文件,新建工作表'Temperatures',从该工作表的E1单元格开始写入。

23.6.1文件IO小结:文件IO关注的是数据的导入与导出的问题;Matlab特有的文件格式是.mat文件,通过saveload指令可以读写文件;针对常用的文件格式,比如图像(bmp/jpg),excel文件等matlab提供了高级例程;Matlab提供了从磁盘文件或剪贴簿转载数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径。

24.6.2应用程序接口应用程序接口:混合编程的问题。为什么要混合编程:

1)不同的编程语言有各自的优缺点;

matlab适合数值计算、vc等适合界面等;

2)现有资源的整合现有的资源是c或matlab的,如何利用?接口方式:1)数据的交换:通过数据文件。2)混合编程:整合到一个程序中去。25.6.2应用程序接口Matlab与c/c++的混合编程:根据主程序框架的语言类型划分:

a)matlab中调用c/c++

编写mex文件;b)c/c++中调用matlabi)matlab计算引擎

ii)第三方组件:matcomiii)com组件:新版本的matlab的功能。26.6.2应用程序接口6.2.1mex文件1)在MATLAB中可调用的C或Fortran语言程序称

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论