matlab经典教程第六章-程序接口_第1页
matlab经典教程第六章-程序接口_第2页
matlab经典教程第六章-程序接口_第3页
matlab经典教程第六章-程序接口_第4页
matlab经典教程第六章-程序接口_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

6.1

文件IO数据导入/导出:提供了强大的数据处理能力,但是在数据处理之前,可能需要导入数据,处理完之后,可能需要导出数据。例子:有一excel文件(oilprice_simple.xls)存放了石油价格的数据,想要绘图显示时间-价格曲线,如何处理?Note:绘图等都没有问题了,但是数据如何从excel导入到

环境?6.1

文件IO提供了如下文件读写的方式:1)高级例程:

特有的mat文件指令:

save、load;2)低级例程:一般的二进制文件指令:fopen、fread、fwrite、fclose3)其他常见文件类型的操作:excel文件、图像、avi等;6.1 文件IOMat文件格式:文件头部+变量名+变量数据。1)头部:包括 版本信息、使用的操作系统平台和文件创建时间。2)数据:按照数据类型、数据长度和数据三个部分保存的。数据长度数据类型数据长度数据类型描述文字(124字节)标识版本6.1

文件IO高级例程save:将当前工作空间中的变量保存成MAT文件,load:将MAT文件中的数据导入到 的工作空间中。no

oad和save指令不仅能够加载和保存MAT格式的数据文件,而且还能够加载一般的文本格式文件。save指令基本语法:save

filename

var1

var2......将工作空间中的变量var1、var2等保存到指定文件中;save('filename',......)save指令的函数格式用法例子:创建一个magic矩阵,并保存。save指令例子:创建一个magic矩阵A,求其逆矩阵B,将A、B保存到magic.mat文件中去。Code(save_load_exam.m)magicMat=magic(4);magicInv=inv(magicMat);save

magic.mat

magicMat

magicInvNote:save指令后不用加分号“;”。load指令:save-保存(write);load—载入(read)load指令的基本语法:load

filename将指定文件中所有的变量加载到当前的工作空间load

filename

var1

var2

......将指定文件中指定的变量加载到当前工作空间load指令:例子:将magic.mat载入code:

(save_load_exam.m)load

magic.matdisp(magicMat);disp(magicInv);workspace。6.1

文件IO6.1.2

文本文件操作针对其他常用的文件格式(非mat文件)。文件类型函

数说

明文本文件csvread以逗号作为间隔符的文本文件csvwrite保存数据到文本文件,逗号作为间隔符dlmread按照指定的间隔符 文本文件的数据dlmwrite按照指定间隔符将数据写入文本文件textread按照指定的格式从文本文件中 数据Excel

电子表格xlsfinfo获取文件类型等基本信息xlsreadExcel

电子表格文件的数据Lotus1-2-3电子表格wk1read从Lotus1-2-3

电子表格中 数据wk2write将数据写入Lotus1-2-3

电子表格6.1

文件IO例子:

从excel文件

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

(oil_price_process.m)fnm='oilprice_simple.xls';dat=xlsread(fnm);year=dat(:,1);pday=dat(:,2);pnow=dat(:,3);%

对应的xls文件save

oilprice.mat

year

pday

pnow;6.1

文件IO6.1.2

低级例程底层的文件操作,包括基本的open、close、read、write。打开文件fid

=

fopen('filename',

'flag');其中,flag为控制文件读写的标识符,它的取值可以为r表示打开的文件进行读的操作。w表示打开的文件进行写的操作,若文件不存在则创建新的文件。6.1

文件IO6.1.3

低级例程打开文件note:若能够成功地打开文件,则fid为非负的整数,否则为-1。关闭文件:

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

数说明输出fscanf从文件中格式化的输入数据矩阵fprintf向文件写入格式化的输出写入数据文件的数据个数fgetl文本文件的一行数据,不包含文本的结束符 字符串fgets文本文件的一行数据,包含文本的结束符字符串fread文件的二进制数据数据矩阵和读入的数据个数fwrite写入文件的二进制数据写入的字节数提供了两大类低级文件I/O函数进行文件内容的读写:二进制文件读写函数文本文件读写函数note:底层例程类似c语言。6.1

文件IO6.1.4

其他类型文件的操作1)图像:imread、imwrite等2)文件类型扩展名函数声音文件AUauwriteWAVwavwirte图像文件BMP、JPG

等imwrite影片格式文件AVIavifile特殊科学数据格式CDFcdfwriteHDF使用图形用户界面导出6.1

文件IO6.1.4

例子例子:最简单的办法是使用界面导入向导,打开文件菜单中的导入数据而后按提示操作。

支持的主要数据文件类型和对应函数如下:6.1

文件IO导入文本文件文本文件需要具备

的行列模式,使用分隔符作为数据项间隔,这些分隔符包括空格、逗号、tab、分号或其它。数据文件可能附带标题行和行列头

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

2

3

4

56

7

8

9

10命令A=load('my_data.txt')装载该文本文件数据。如果数值数据使用其它分隔符,可以使用dlmread读入,假设my_data.txt中数据如下:7.2;8.5;6.2;6.65.4;9.2;8.1;7.2命令A=dlmread('my_data.txt',';')读入该数据。包含行列的数值数据例如:Grade1

Grade2Grade378.8

55.9

45.999.5

66.8

78.089.5

77.0

56.7fid

=

fopen('grades.dat',

'r');grades=

textscan(fid,

'%f

%f

%f',

3,

'headerlines',

1);fclose(fid);包含字符和数值的混合数据使用textread函数读入导出文本文件save函数A

=[

1

2

34;

5

678];save

my_data.out

A

–ASCIIdlmwrite函数

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

sheets]=

xlsfinfo('tempdata.xls')Xlswrite导出数据d

=

{'Time',

'Temp';

12

98;

13

99;

14

97}命令xlswrite('tempdata.xls',d,'Temperatures',

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

应用程序接口应用程序接口:混合编程的问题。为什么要混合编程:不同的编程语言有各自的优缺点;适合数值计算、vc等适合界面等;现有资源的整合的,如何利用?现有的资源是c或接口方式:数据的交换:通过数据文件。混合编程:整合到一个程序中去。6.1

文件IO小结:文件IO关注的是数据的导入与导出的问题;特有的文件格式是.mat文件,通过saveload指令可以读写文件;针对常用的文件格式,比如图像(bmp/jpg),excel文件等

提供了高级例程;提供了从磁盘文件或剪贴簿

数据至工作区(数据导入)和将工作区变量存入磁盘文件(数据导出)的多种途径。6.2

应用程序接口与c/c++的混合编程:根据主程序框架的语言类型划分:中调用c/c++编写mex文件;c/c++中调用i)ii)第计算引擎组件:iii)com组件:新版本的的功能。6.2

温馨提示

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

评论

0/150

提交评论