第三讲文件操作.

Slides:



Advertisements
Similar presentations
1 数学软件 Matlab —— 文件操作. 2 内容提要 文件的打开与关闭 文本文件的写与读 二进制文件的写与读.
Advertisements

Chap 12 文件 12.1 学生成绩文件统计 12.2 用户信息加密和校验 12.3 文件综合应用:资金账户管理.
Chap 12 文件 12.1 将短句“Hello World”写入到文件 12.2 读取学生成绩文件 12.3 文件复制
第十六章 设计文件应用程序 本章内容及要求: 掌握VB中文件的概念、种类及其结构; 掌握顺序文件的操作:打开、读/写、关闭;
C 语言程序设计 文件 周闻钧 朱宏明.
第十三章 文件.
目标 运用File类进行文件操作 理解流,标准输入/输出流的概念
在PHP和MYSQL中实现完美的中文显示
第12章 文 件 §12.1 概述 1.文件信息的集合,如一段程序、一段数据、一副图等
第8章 文件 P 了解文件的处理过程 8.2 掌握文件的基本操作本领 8.3 文件的应用举例 *贯穿教学全过程的实例.
Hadoop I/O By ShiChaojie.
计算概论 第二十一讲 文件操作 北京大学信息学院.
第十一章 文件操作 文件的概念 文件的读写 主讲:李祥 时间:2015年10月.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
第10章 文件.
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
第10章 文件操作.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
函数申明、定义、调用 申明: void sort(float a[], int n); void sort(float *a, int m); void sort(float *a, int); void sort(float *, int);
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第4章 MATLAB文件操作 4.1 文件的打开与关闭 4.2 文件的读写操作 4.3 数据文件定位.
程式設計 博碩文化出版發行.
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
THE C PROGRAMMING LANGUAGE
第10章 文件操作.
第十章 文件操作.
第10章 对文件的输入输出 10.1 C文件的有关基本知识 10.2 打开与关闭文件 10.3 顺序读写数据文件 10.4 随机读写数据文件
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
第十三章 文件 目录 学生信息管理系统的完善 文件的概念 文件类型指针 文件的打开与关闭 文件的顺序读写
第9章 文件 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
第四章 附件 (应用程序软件包).
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
研讨课4 文件操作.
目录 11.1 文件的种类 11.2 文件指针和文件内部的位置指针 11.3 文件的操作 11.4 文件的打开与关闭
MATLAB 程式設計入門篇 初探MATLAB
MATLAB 程序设计语言 任课教师:刘毅 西安电子科技大学 ISN国家重点实验室.
第十三章 文件.
MATLAB介绍 Matlab基本命令介绍 Matlab矩阵运算 Matlab控制流 Matlab图像处理工具箱 实习题讲解.
Java语言程序设计 清华大学出版社 第8章 输入输出流(1).
第9章 文件 学习目的与要求: 熟练掌握文件指针的使用 掌握与文件相关的函数 能够利用文件相关函数实现各种操作.
C语言程序设计.
数列.
一、文件的基本概念 第十三章 文 件 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一
C程序设计.
MATLAB 程式設計入門篇 初探MATLAB
本节内容 随机读取 视频提供:昆山爱达人信息技术有限公司.
MATLAB 程式設計入門篇 初探MATLAB
姚金宇 MIT SCHEME 使用说明 姚金宇
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
Lab17 程序设计B班
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
函数申明、定义、调用 申明: void sort(float a[], int n); void sort(float *a, int m); void sort(float *a, int); void sort(float *, int);
本节内容 文件系统 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Visual Basic程序设计 第13章 访问数据库
第13章 文 件.
Python 环境搭建 基于Anaconda和VSCode.
_08文件操作 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
MATLAB 实用教程.
第11章 文件处理技术 文件是存放在外部介质上的数据集合。很多程序需要读写磁盘文件,所以涉及到如何建立文件,如何从文件中读数据,如何向文件写数据等问题。本章将讨论与文件操作相关的内容。
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
第四章 UNIX文件系统.
第十四讲 文件流与 输出输入重载.
Presentation transcript:

第三讲文件操作

Matlab环境下的文件与其它系统一样,也有二类文件组成,一是文件,又称M文件,另一类是数据文件。系统除提供了文件的一般管理功能外,还提供了对数据文件进行操作的特殊功能函数。

3.1 基本命令 1. help 帮助命令 格式: help 命令名 例如: help plot help matlab\general 2. what 显示目录内容命令 格式: what [目录名] 例如:: what matlab 显示matlab目录下的所有M-文件。

3.1 基本命令 3.type 显示文件内容命令 格式: type文件名 显示M-文件的内容。 4. 寻找命令 格式: lookfor 命令或字符串 寻找命令或字符串是否存在。 例如: lookfor cos

3.1 基本命令 5.which 寻找函数命令 格式:which 函数名 显示函数所在的文件位置,给出路径。 例如: which pinv 6 .path 路径控制命令 格式: path [路径] 显示或改变搜索路径。 例如: path (path,‘d:\test\aaa’)

3.1 基本命令 7.who,whos 显示变量命令 显示当前变量。 whos命令更详细。 8 .load,save 取出与保存结果命令 从磁盘上读出或保存计算结果。 例如: save test 将变量存入test.mat文件中。 例如: save test x y 仅保存x ,y 变量。

3.1 基本命令 9 .clear 清除变量命令 格式: [变量名] 例如: clear x y 10 .disp 显示文本或变量内容命令 例如:x=[1 2 3] disp(x) y=‘aaaaaaa’ disp(y)

3.1 基本命令 11 .cd 改变目录命令 与DOS类似。 12 .dir 显示目录内容命令 显示目录里的文件。 例如:dir \matlab\notebook

3.1 基本命令 13.delete 删除文件或对象命令 格式: delete 文件名 不能用通配符 delete(对象) 例如:H=PLOT(X,X) delete (H) 删除图形对象H

3.1 基本命令 14.! 执行系统命令 在Windows下运行。“!”用于执行DOS命令。 例如:!dir *.exe 显示当前目录里的EXE文件。

3.2 文件的打开与关闭 Matlab提供了对数据文件建立、打开、读、写以及关闭等一系列函数,数据文件一般存放在磁盘等介质上,用文件名标识,系统对文件名没有特殊要求。文件数据格式有二种形式,一是二进制格式文件,二是ASCII文本文件,系统对这两类文件提供了不同的读写功能函数。

3.2 文件的打开与关闭 1 fopen打开文件 在读写文件之前,必须先用fopen命令打开一个文件,并指定允许对该文件进行的操作。文件操作结束后,应及时关闭文件,以免数据的丢失或误修改。fopen函数格式为: Fid= fopen(filename,permission)

其中filename为文件名,permission为文件格式,可以是下列格式之一: 3.2 文件的打开与关闭 其中filename为文件名,permission为文件格式,可以是下列格式之一: ‘r’ 打开文件,读数据,文件必须存在。 ‘w’ 打开文件,写数据,若文件不存在,系统会自动建立。 ‘a’ 打开文件,在文件末尾添加数据。 ‘r+’ 打开文件,可以读和写数据,文件必须存在。 ‘w+’ 打开文件,供读与写数据用。 ‘a+’ 打开文件,供读与添加数据用。 ‘W’ 打开文件供写数据用,无自动刷新功能。 ‘A’ 打开文件供添加数据用,无自动刷新功能。

3.2 文件的打开与关闭 例如:打开一个名为std.dat的数据文件并进行读操作,其命令格式为: Fid=fopen( ‘std.dat’, ’r’ ) 上述打开格式均为二进制格式,如果想用ASCII文本格式,则必须在格式字符串中加上字符t,例如用’r t’表示以ASCII格式打开供读操作的数据文件。

3.2 文件的打开与关闭 2 fclose关闭文件 文件在进行完读、写等操作后,应及时关闭,以保证文件的安全可靠。关闭文件命令格式为: Sta=fclose(Fid) 关闭Fid所表示的文件 Sta表示关闭文件操作的返回代码,若关闭成功,返回0,否则返回–1。

3.3 文件的读写操作 1 二进制数据文件 fread 读二进制数据文件。格式为: [A,COUNT]=fread(Fid,size,precision) 其中A为数据矩阵,COUNT返回所读取的数据元素个数。size为可选项,若不选用则读取整个文件内容,若选用它的值可以是下列值:

3.3 文件的读写操作 N 读取 N个元素到一个列向量。 inf 读取整个文件。 [M,N] 读数据到M×N的矩阵中,数据按列存放。

3.3 文件的读写操作 precision用于控制所读数据的精度格式。 缺省格式为uchar,即无符号字符格式。例如:Fid=fopen(‘std.dat’, ‘r’); A=fread(Fid, 100, ’long’); Sta=fclose(fid); 以读数据方式打开数据文件std.dat,并按长整型数据格式读取文件的前100个数据放入向量A,然后关闭文件。

3.3 文件的读写操作 fwrite 函数以二进制格式向数据文件写数据,其格式为: COUNT=fwrite (Fid, A, precision) 例如:Fid=fopen(‘magic5.bin’, ‘wb’); fwrite(Fid, magic, ’int32’); 上述语句将矩阵magic中的数据写入文件magic5.bin中,数据格式为32位整型二进制格式。

【例1】建立一数据文件test.dat,用于存放矩阵A的数据。 3.3 文件的读写操作 【例1】建立一数据文件test.dat,用于存放矩阵A的数据。 已知 A=[-0.6515 -0.2727 -0.4354 -0.3190 -0.9047 -0.7534 -0.4567 -0.3212 -0.4132 -0.3583 -0.9264 -0.8173 -0.7823 -0.3265 -0.0631 -0.1735 -0.7373 -0.0972 -0.3267 -0.6298 -0.4768 -0.6773 -0.6574 -0.1923 -0.4389]

程序段将矩阵A的数据以二进制浮点数格式写入文件test.dat中。 3.3 文件的读写操作 Fid=fopen(‘test.dat’, ‘w’) cnt=fwrite(Fid, A, ‘float’) fclose(Fid) 程序段将矩阵A的数据以二进制浮点数格式写入文件test.dat中。 Fid=fopen(‘test.dat’, ‘r’) [B,cnt]=fread(Fid, [5,inf], ‘float’) 读取文件test.dat的内容。

[A,COUNT]= fscanf (Fid, format, size) 3.3 文件的读写操作 2 文本文件 fscanf 读ASCII文本文件 [A,COUNT]= fscanf (Fid, format, size) 其中A为数据矩阵,用以存放读取的数据,COUNT返回所读取的数据元素个数。 format用以控制读取的数据格式,由%加上格式符组成,格式符为: d, i, o, u, x, e, f, g, s, c与[. . .]

3.3 文件的读写操作 例如: s=fscanf(fid, ‘%s’) 读取一个字符串 a=fscanf(fid, ‘%5d’) 读取5位数的整数 b= fscanf(fid, ‘%6.2d’) 读取浮点数

fprintf 写ASCII数据文件,其格式为: COUNT= fprintf(Fid, format, A,…) 3.3 文件的读写操作 fprintf 写ASCII数据文件,其格式为: COUNT= fprintf(Fid, format, A,…) 其中A为要写入文件的数据矩阵,先按format格式化数据矩阵A,后写入到Fid所指定的文件。 例如:x = 0: 0.1: 1; y = [x; exp(x)]; Fid = fopen('exp.txt', 'w'); fprintf(Fid,'%6.2f %12.8f\n',y); fclose(Fid);

1.fseek函数定位文件位置指针,格式为: status=fseek(Fid, offset, origin) 3.4 数据文件定位写操作 1.fseek函数定位文件位置指针,格式为: status=fseek(Fid, offset, origin) 其中Fid为文件句柄,offset表示位置指针相对移动的字节数,若为正整数表示向文件尾方向移动,若为负整数表示向文件头方向移动,origin表示位置指针移动的参照位置,它的取值有三种可能:’cof ’表示文件的当前位置,’bof ’表示文件的开始位置,’eof ’表示文件的结束位置。若定位成功status返回值为0,否则返回值为–1。

3.4 数据文件定位写操作 2. ftell函数返回文件指针的当前位置。 其格式为: position=ftell (Fid) 返回值为从文件开始到指针当前位置的字节数。若返回值为–1表示获取文件当前位置失败。

3.4 数据文件定位写操作 【例2】下述程序段说明了函数fseek和ftell的使用。 a=[1: 5]; Fid=fopen(‘fdat.bin’, ‘w’); 以写方式打开文件fdat.bin fwrite(Fid, a, ‘int16’ ); 将a中的5个数据元素分别以 双字节整型格式写入 status=fclose(Fid); 文件fdat.bin Fid=fopen(‘fdat.bin’, ‘r’); 以读数据方式打开文件

3.4 数据文件定位写操作 status=fseek(Fid, 6, ‘bof’); 将文件数据指针从开始位置向尾部移动6个字节 four=fread(Fid, 1, ‘int16’); 读取当前数据,即第4个数据,并移动指针到下一个数据 position=ftell(Fid); eight=fread(Fid, 1, ‘int16’); 读取第8个数据 status=fclose(Fid);

习题 1.已知文件句柄为Fid,请写出完成下列操作的命令或命令序列 a 以读和写方式打开二进制格式数据文件 b 将浮点数F添加到文件尾部 c 将文件内容以浮雕点数格式读入数据 向量B

习题 2.建立数据文件test.dat,要求该文件可以读、写。文件内容如下: NAME SCORE Liuqi 84.0 Zhangbin 87.5 Liping 90.0 Wangwei 78.0 Wujian 92.5 … …