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

Slides:



Advertisements
Similar presentations
完美殺人筆記簿 【爸!我受夠了!】 第七組組員: 林正敏 陳筱涵 李蓓宇 許純宜 羅玉芬 謝文軒.
Advertisements

1 债券融资业务拓展交流 债券业务部 二 O 一二年二月. 2 目 录  第一部分 债券融资业务概述  第二部分 东兴证券债券融资业务情况介绍及前景展望  第三部分 什么样的企业适合发债  第四部分 债券融资业务合作开发方式及激励探讨.
轴对称(一) 课堂引入 仔细观察下列图片,思考这些图片有什么样 的特点.
國中教育會考說明 年 5 月 14 日(六) 105 年 5 月 15 日(日)  08:20- 08:30 考試說明  08:20- 08:30 考試說明  08:30-  09:40 社 會  08:30-  09:40 自 然 09:40- 10:20 休息 09:40-
揭日本人让人理解不了的20件事 今天先来看看日本人的自我剖析︰日本人的20个“为什么”?这“20个为什么”的内容来源于日本影视名人北野武所主持的一个节目。虽然不是网友来信中提出过的问题,但看看日本人自己对自己的分析,是挺有意思的。而且,仔细看看下面这“日本人的20个为什么”,会发现其实有些东西对于中国人来说并不陌生。毕竟汉字圈里的文化,是有共融之处的。
创意鄱阳湖— 一种基于无形资源理念开发鄱阳湖的思考 以传奇背景音乐作为开场,体现创意创造传奇 南昌大学 黄细嘉
第四單元 通電的玩具 張老師的網頁.
防盜裝置  學生科技探究.
专题培训 企业所得税汇算清缴 (2015年度).
第四章:长期股权投资 长期股权投资效果 1、控制:50%以上 有权决定对方财务和经营.
饮食中的平衡 酸 性 食 物 与 碱 性 食 物.
期末書面報告指定書籍 王鼎鈞回憶錄---昨天的雲
万物皆数 — 毕达哥拉斯 方法就是把我们应注意的事物进行适当的整理和排列. — R.Descartes.
川信-丰盛系列集合资金信托计划 2016年3月.
古文選讀.
农信社信贷产品实务技能提升培训.
司法体制改革与律师执业前景瞻望 黄太云
《老年人权益保障》 --以婚姻法.继承法为视角
请说出牛顿第一定律的内容。.
区域地理环境与人类活动.
义乌梦娜袜业 广告策划书 组员:徐琴娜 金春晓 陈晓静 陈菁菁 毛振华 王勤 指导老师:张益丹 完成时间:2006年12月.
电话联系.
迎宾员礼仪 包头机电工业职业学校管理系 白琳 1.
食用受污染三鹿牌婴幼儿配方奶粉相关的 婴幼儿泌尿系统结石的超声诊断.
财 务 会 计 第四篇:供应链会计实务 制作人:谌君、熊瑜.
XX信托 ·天鑫 9号集合资金信托计划 扬州广陵
深圳市晨兴餐饮投资管理有限公司 招商手册.
第一章 C语言概述.
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
第3章 變數、資料型別與運算子.
范洪源 臺灣師範大學數學系 MATLAB 基本功能介紹 范洪源 臺灣師範大學數學系.
第10章 文件操作.
第十一章 文件 文件概述 文件操作 文件操作实例 本章小结 作业: 练习:
張智星 (Roger Jang) 清大資工系 多媒體檢索實驗室
第10章 文件操作.
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
11.1 文件的基本概念 11.2 文件的打开与关闭 11.3 文件的顺序读写 11.4 文件的随机读写 11.5 文件检测
第3章 變數、常數與資料型態 3-1 C語言的識別字 3-2 變數的宣告與初值 3-3 指定敘述 3-4 C語言的資料型態
第3章 變數、資料型別與運算子 3-1 變數與資料型別的基礎 3-2 變數的命名與宣告 3-3 資料型別 3-4 運算式與運算子
第4章 MATLAB文件操作 4.1 文件的打开与关闭 4.2 文件的读写操作 4.3 数据文件定位.
程式設計 博碩文化出版發行.
THE C PROGRAMMING LANGUAGE
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
ACM程序员大赛讲座 _____C语言程序设计要点 讲授人:王敬华.
第5章 文件.
第9章 文件操作 文件 使用文件的目的 操作系统管理数据的基本单位 存储在外存储器上的数据的集合
C#程序设计基础 第二章 数据类型.
排列组合 1. 两个基本原理 分类加法计数原理 分步乘法计数原理.
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
Java變數 2014/6/24.
第三节 常见天气系统.
高山草原生態系 分布於臺灣3000公尺以上高山,如中央山脈.玉山山脈.雪山山脈 分為玉山箭竹草原,高山芒草原及兩者混生林三種
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 类型、对象、运算符和表达式.
第二章 基本数据类型 ——数据的表示.
Review 1~3.
本节内容 指针类型.
第13章 文 件.
第六章 机件的表达方法 在工程实际中,由于机件的结构形状是多种多样的,仅用三视图往往不能完整、清楚、简便地表达出机件的结构和形状。为此,国家标准《机械制图》还规定了机件表达的其他方法。 本章将介绍视图、剖视图、断面图等常用表达方法,并讨论怎样根据机件的结构特点,恰当地选用这些表达方法。
C 程式設計— 檔案處理 台大資訊工程學系 資訊系統訓練班.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
第三讲文件操作.
第七章 文件 7.1 文件的基本概念 7.2 文件类型指针 7.3 文件的打开与关闭 7.4 文件的读/写 7.5 文件的随机读/写
變數、資料型態、運算子.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
變數與資料型態  綠園.
C语言程序设计 第13章 文件操作.
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

1 数学软件 Matlab —— 文件操作

2 内容提要 文件的打开与关闭 文本文件的写与读 二进制文件的写与读

3  文件操作是一种重要的输入输出方式, Matlab 提 供了一系列输入输出函数,专门用于文件操作。  Matlab 文件操作三步骤:  Matlab 中的输入输出函数是以 C 语言标准库函 数中的输入输出函数为基础开发的,所以这些函数 与 C 语言的输入输出函数相类似。 Matlab 文件操作介绍 (1) 打开文件 (2) 对文件进行读写操作 (3) 关闭文件

4 打开方式有(若不指定打开方式,则表示只读) : fid=fopen ( 文件名,打开方式 ) 'r' 只读,文件必须存在(缺省的打开方式) 'w''w' 写文件,若文件已存在则原内容将被覆盖;若文 件不存在则新建一个 'a''a' 在文件末尾添加,文件若不存在则新建一个 'r+' 可读可写,文件必须存在 'w+' 可读可写,若文件已存在则原内容将被覆盖;若 文件不存在则新建一个 'a+' 可读可写可添加,文件若不存在则新建一个 文件的打开 其中文件名用字符串形式表示(可以带路径名) 文件的打开

5 fid 为文件句柄,通过它才能对该文件进行操作 如果句柄值大于 0 ,则表示文件打开成功; 若文件打开失败, fid 的返回值为 -1 。 有两个标准代码文件,不需打开就可以直接使用,分别为: fid=1 标准输出文件, fid=2 标准错误文件。 文件的打开 fid=fopen('output.txt' , 'wt+'); fprintf(fid,'Hello world!\n'); fclose(fid); fprintf(1,'Hello world!\n'); fprintf(2,'Hello world!\n'); fid=fopen ( 文件名,打开方式 )

6 文件的关闭 其中 fid 为所要关闭的文件的句柄 status 为关闭文件的返回代码,若成功则为 0 ,否则为 -1 文件操作结束后一定要关闭 status=fclose(fid); 文件的关闭

7 内容提要 文件的打开与关闭 文本文件的写与读 二进制文件的写与读

8 将指定的变量按指定的格式写入文本文件中 若省略 fid ,则表示在屏幕上输出 count 返回所写入的数据的个数(可以省略) format 用来指定写数据时采用的格式,通常由三部分组成 普通字符串、格式字符串、转义字符 count=fprintf(fid,format, 输出变量列表 ) 文本文件的写入 向文本文件中写数据 x=3.14; str='math'; fid=fopen('output.txt','wt'); fprintf(fid,'x=%f, str=%s\n', x, str); fclose(fid);

9 数据输出时采用的格式( format ) 文本文件的写入 flags ( 可选 ) width and precision ( 可选 ) conversion character ( 格式说明符,必须 ) (1) 普通字符串:按原样输出 (2) 格式字符串:指定变量的输出格式,以 % 开头,包括 (3) 转义字符:输出特殊符号,如换行等,常见的有: \b 退后一格 \t 水平制表符 \f 换页 \\ 反斜杠 \n 换行 '' 单引号 \r 回车 % 百分号

10 格式字符串 fprintf('x= %-12.5f \n', x) 以 % 开头 flag field width precision 格式说明符 - :左对齐 + :输出符号 0 :空白处添 0 空格:前面加一空格 字段宽度 指定小数 点后位数 格式字符串示例

11 格式说明符 常见的格式说明符 c 字符型 g 浮点数(自动) d 十进制整数 o 八进制 e 浮点数(科学计数法) s 字符串 f 浮点数(小数形式) x/X 十六进制 x=sqrt(2); fid=fopen('out2.txt','wt'); fprintf(fid,'x=%12.5f, \n', x); fprintf(fid,'x=%-12.5f, \n', x); fclose(fid); 例:

12 x=0:0.1:1; y=exp(x); fid=fopen('output.txt','wt'); fprintf(fid,' x exp(x)\n'); for k=1:length(x) fprintf(fid,'%6.2f %12.8f\n', x(k),y(k)); end fclose(fid); 例: 文本文件写入举例 注:格式的重复使用 x=0:0.1:1; y=exp(x); z=[x; y]; fid=fopen('output.txt','wt'); fprintf(fid,' x exp(x)\n'); fprintf(fid,'%6.2f %12.8f\n', z); fclose(fid);

13 A 用来存放读取的数据 count 返回读取数据的个数,为可选项 fid 为文件句柄 size 为可选项,若缺省,则读取整个文件, 若给出,则取值可以是: [A,count]=fscanf(fid,format,size) A=fscanf(fid,format,size) 文本文件的读取 N 读取 N 个数据,组成一个列向量 Inf 读取整个文件,组成一个列向量 [m,n] 读取 m  n 个数据,组成到一个 m  n 矩阵, 按列存放 从文本文件中读取数据

14 文本文件读取举例 x=0:0.1:1; y=exp(x); z=[x; y]; % 写文件 fid=fopen('output.txt','wt'); fprintf(fid,'%6.2f %12.8f\n', z); status=fclose(fid); % 读文件 fid=fopen('output.txt','rt'); A=fscanf(fid,'%f'); % 注意格式字符串 % A=fscanf(fid,'%f',[2,11]); status=fclose(fid); 例:

15 内容提要 文件的打开与关闭 文本文件的写与读 二进制文件的写与读

16 按指定的数据类型将矩阵 A 中的元素写入到文件中。 其中 count 返回所写入的数据元素个数(可省略) count=fwrite(fid,A,precision) A=magic(5); fid=fopen('magic5.dat','wb'); fwrite(fid,A,'int8'); fclose(fid); fid=fopen('magic5.dat','rb'); [B,count]=fread(fid,[5,inf],'int8'); fclose(fid); 二进制文件的写入 例: 向二进制文件中写入数据

17 precision 代表写入的数据的类型,缺省为 uchar 'uchar' 无符号字符 'uint16' 16 位无符号整数 'schar' 带符号字符 'uint32' 32 位无符号整数 'int8' 8 位带符号整数 'uint64' 64 位无符号整数 'int16' 16 位带符号整数 'float32' 32 位浮点数 'int32' 32 位带符号整数 'float64' 64 位浮点数 'int64' 64 位带符号整数 'double' 64 位双精度数 'uint8' 8 位无符号整数 二进制文件

18 'char' 带符号字符 'short' 16 位带符号整数 'int' 32 位带符号整数 'long' 32 或 64 位带符号整数 'ushort' 16 位无符号整数 'uint' 32 位无符号整数 'ulong' 32 或 64 位无符号整数 'float' 32 位浮点数 以下数据类型与使用的平台有关: 二进制文件

19 [A,count]=fread(fid,size,precision) A=fread(fid,size,precision) N 读取 N 个数据,组成一个列向量 Inf 读取整个文件,组成一个列向量 [m,n] 读取 m  n 个数据到一个 m  n 矩阵中, 按列存放 二进制文件的读 A 用来存放读取的数据 count 返回读取数据的个数,可选项 fid 为文件句柄 size 为可选项,缺省为读取整个文件。取值可以是: 从二进制文件中读取数据

20 fid=fopen('output.dat','rb'); A=fread(fid,100,'double'); status=fclose(fid); fid=fopen('output.dat','rb'); [A,count]=fread(fid,[100,100],'double'); status=fclose(fid); 例: 二进制文件读写举例

21 打开文件读写数据时,需要判断和控制文件的读写位置, 如数据是否读完,或者需要读写指定位置上的数据等。 在读写文件时, Matlab 自动创建一个文件位置指针来管理 和维护文件读写数据的起始位置。 Matlab 提供了几个文件位置指针定位操作函数: fseek 、 ftell 、 frewind 和 feof 读写的定位

22 status=fseek(fid,offset,origin) fid 为文件句柄 offset 表示位置指针相对偏移的字节数,若为正表示向 文件尾方偏移,若为负表示向文件头方向偏移 fseek 'cof' 表示当前位置, 'bof' 表示文件的开始位置, 'eof' 表示文件末尾; 若定位成功, status 返回值为 0 ,否则返回 -1 origin 表示位置指针移动的参照位置,有三种取值: 读写的定位

23 frewind(fid) eofstat=ftell(fid) 判断文件位置指针是否达到文件结束位置,若文件位 置指针已在文件末尾,则返回 1 ,否则返回 0 position=ftell(fid) 返回值为从文件开始到指针当前位置的字节数 将位置指针返回到文件的起始位置 ftell 、 frewind 和 feof 读写的定位

24 上机作业 2 、从课程主页上下载二进制数据文件 data09.dat ,从文件中 读取 100 个元素(双精度),构成一个 50 X 2 的矩阵。然后将 其写入到一个文本文件( data09.txt )中,按两列排放。 1 、编写程序,计算 1 到 225 之间所有整数的平方根,要求 将计算结果既在屏幕上输出,也同时将计算结果自动存入 文本文件: data91.txt 中。 (程序取名 m91.m ) (程序取名 m92.m )