MATLAB基础与编程入门(第二版)第5章文件IO.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
表5-5 读写数据的低级I/O函数 【例子5-10】 格式化I/O示例 001 function [data, count] = txtio_examp 002 %TXTIO_EXAMP文本文件的格式化I/O 003 004 %打开一个文本文件写入数据 005 [fid msg] = fopen(square_mat.txt,wt); 006 if fid == -1 007 disp(msg); 008 return; 009 end 010 %写入数据 011 count = fprintf(fid,%s\n,文本文件格式化I/O示例); 012 count = fprintf(fid, %i\t%i\t%i\n,[1 2 3;4 5 6;7 8 9]); 013 %关闭文件 014 fclose(fid); 015 %打开文本文件读入数据 016 fid=fopen(square_mat.txt, rt); 017 if fid == -1 018 disp(msg); 019 return; 020 end 021 %读取数据 022 title = fgetl(fid); 023 disp(title); 024 data=fscanf(fid, %i); 025 data = reshape(data, 3, 3); 026 %关闭文件 027 fclose(fid); 在例子5-10展示了使用fscanf和fprintf进行文件数据I/O的过程,这两个函数使用起来和C语言的函数没有太多区别,其格式化的文本和C语言的也保持一致,具体的请参阅C语言的说明或者MATLAB的帮助文档。 不过在MATLAB中使用这些函数充分利用了基于向量或者矩阵的运算特点,例如在例子5-10的012、024行进行数据的写入和读取操作时,若使用C语言完成同样的工作则需要使用循环来处理,但是在MATLAB中仅仅用一行代码就实现了同样的工作。 运行例子5-10,在MATLAB命令行中键入指令: [data count] = txtio_examp 文本文件格式化I/O示例: data = 1 2 3 4 5 6 7 8 9 count = 18 可以看出,在这里读取的整数每个元素占用了2个字节。 [例子5-11] 二进制文件的读写。 001 function [data,count,status] = binio_examp 002 %BINIO_EXAMP 二进制文件读写示例 003 004 % 打开二进制文件写入数据 005 fid = fopen(magic5.bin,wb); 006 % 写入文本数据 007 count = fwrite(fid,喂,你好吗?,int32); 008 % 写入数据 009 fwrite(fid,magic(5),int32); 010 %关闭文件 011 status = fclose(fid); 012 % 打开二进制文件读取数据 013 fid = fopen(magic5.bin,rb); 014 % 读取文本 015 S = fread(fid,count,int32); 016 disp([读取数据类型: ,class(S)]); 017 disp([读取数据内容: ,char(S)]); 018 % 读取数据 019 [data count] = fread(fid,int32); 020 data = reshape(data,5,5); 021 %关闭文件 022 status = fclose(fid); 读写二进制文件的时候略微麻烦一些,就是在读写数据的时候需要指定数据的类型和读取数据的个数。例如在例子5-9的007、009行写入数据时,分别要指定写入数据的类型,在015、019行读入数据时,需要指定读取的数据类型和个数,并且这些信息要同数据文件内容保持一致,否则读入的数据就不会正确。 表5-6 数据类型标识符 由于在写入二进制文件数据时只能够写入8位的字符数据,所以在例子5-9写入文本数据的时候没有将文本数据按照字符类型写入,而是按照32位整数的格式写入的,也可以按照16位无符号整数类型写入,所以在读入数据时也按照32位整数的格式读入。若在fread函数或者fwrite函数进行操作的时候不指定数据类型标识符,则默认按照uchar的格式读写数据。运行例子5-9的代码,在MATLAB命令行中键入: [da

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档