《matlab文件读取--超经典》由会员分享,可在线阅读,更多相关《matlab文件读取--超经典(30页珍藏版)》请在金锄头文库上搜索。
1、第三讲文件操作 Matlab环境下的文件与其它系统一样 也有二类文件组成 一是文件 又称M文件 另一类是数据文件 系统除提供了文件的一般管理功能外 还提供了对数据文件进行操作的特殊功能函数 3 1基本命令 1 help帮助命令格式 help命令名例如 helpplothelpmatlab general2 what显示目录内容命令格式 what 目录名 例如 whatmatlab显示matlab目录下的所有M 文件 3 1基本命令 3 type显示文件内容命令格式 type文件名显示M 文件的内容 4 寻找命令格式 lookfor命令或字符串寻找命令或字符串是否存在 例如 lookforcos
2、 3 1基本命令 5 which寻找函数命令格式 which函数名显示函数所在的文件位置 给出路径 例如 whichpinv6 path路径控制命令格式 path 路径 显示或改变搜索路径 例如 path path d test aaa 3 1基本命令 7 who whos显示变量命令显示当前变量 whos命令更详细 8 load save取出与保存结果命令从磁盘上读出或保存计算结果 例如 savetest将变量存入test mat文件中 例如 savetestxy仅保存x y变量 3 1基本命令 9 clear清除变量命令格式 变量名 例如 clearxy10 disp显示文本或变量内容命令
3、例如 x 123 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提供了对数据文件建立 打开 读 写以及关闭等一系列函数 数
4、据文件一般存放在磁盘等介质上 用文件名标识 系统对文件名没有特殊要求 文件数据格式有二种形式 一是二进制格式文件 二是ASCII文本文件 系统对这两类文件提供了不同的读写功能函数 3 2文件的打开与关闭 1fopen打开文件在读写文件之前 必须先用fopen命令打开一个文件 并指定允许对该文件进行的操作 文件操作结束后 应及时关闭文件 以免数据的丢失或误修改 fopen函数格式为 Fid fopen filename permission 3 2文件的打开与关闭 其中filename为文件名 permission为文件格式 可以是下列格式之一 r 打开文件 读数据 文件必须存在 w 打开文件
5、写数据 若文件不存在 系统会自动建立 a 打开文件 在文件末尾添加数据 r 打开文件 可以读和写数据 文件必须存在 w 打开文件 供读与写数据用 a 打开文件 供读与添加数据用 W 打开文件供写数据用 无自动刷新功能 A 打开文件供添加数据用 无自动刷新功能 3 2文件的打开与关闭 例如 打开一个名为std dat的数据文件并进行读操作 其命令格式为 Fid fopen std dat r 上述打开格式均为二进制格式 如果想用ASCII文本格式 则必须在格式字符串中加上字符t 例如用 rt 表示以ASCII格式打开供读操作的数据文件 3 2文件的打开与关闭 2fclose关闭文件文件在进行完读
6、 写等操作后 应及时关闭 以保证文件的安全可靠 关闭文件命令格式为 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文件的读写操作 prec
7、ision用于控制所读数据的精度格式 缺省格式为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
8、中 数据格式为32位整型二进制格式 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 3 3文件的读写操作 Fid fopen test dat w cnt fwrite Fid A float fclose
9、Fid 程序段将矩阵A的数据以二进制浮点数格式写入文件test dat中 Fid fopen test dat r B cnt fread Fid 5 inf float fclose Fid 读取文件test dat的内容 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 读取一
10、个字符串a fscanf fid 5d 读取5位数的整数b fscanf fid 6 2d 读取浮点数 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 3 4数据文件定位写操作 1 fseek函数定位文件位置指针 格式为 status fseek Fid offset o
11、rigin 其中Fid为文件句柄 offset表示位置指针相对移动的字节数 若为正整数表示向文件尾方向移动 若为负整数表示向文件头方向移动 origin表示位置指针移动的参照位置 它的取值有三种可能 cof 表示文件的当前位置 bof 表示文件的开始位置 eof 表示文件的结束位置 若定位成功status返回值为0 否则返回值为 1 3 4数据文件定位写操作 2 ftell函数返回文件指针的当前位置 其格式为 position ftell Fid 返回值为从文件开始到指针当前位置的字节数 若返回值为 1表示获取文件当前位置失败 3 4数据文件定位写操作 例2 下述程序段说明了函数fseek和f
12、tell的使用 a 1 5 Fid fopen fdat bin w 以写方式打开文件fdat binfwrite Fid a int16 将a中的5个数据元素分别以双字节整型格式写入status fclose Fid 文件fdat binFid 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 要求该文件可以读 写 文件内容如下 NAMESCORELiuqi84 0Zhangbin87 5Liping90 0Wangwei78 0Wujian92 5