资源描述:
《数学软件MATLAB课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学实验Matlab文件操作文件操作是一种重要的输入输出方式,Matlab提供了一系列输入输出函数,专门用于文件操作。Matlab文件操作主要有三个步骤:首先打开文件,然后对文件进行读写操作,最后要关闭文件。Matlab中的输入输出函数是以C语言标准库函数中的输入输出函数为基础开发的,所以这些函数与C语言的输入输出函数相类似。Matlab文件操作介绍常见的打开方式有:fid=fopen(文件名,打开方式)'r'只读,文件必须存在(缺省的打开方式)'w'写文件,若文件已存在则原内容将被覆盖;若文件不存在则新建一个'a'在文件末尾添加,文件若不
2、存在则新建一个'r+'可读可写,文件必须存在'w+'可读可写,若文件已存在则原内容将被覆盖;若文件不存在则新建一个'a+'可读可写可添加,文件若不存在则新建一个文件的打开其中文件名用字符串形式表示(可以带路径名)fid为文件句柄,其它函数可以用它对该文件进行操作。如果句柄值大于0,则表示文件打开成功;若打开失败,fid的返回值为-1。有两个标准代码文件,不需打开就可以直接使用,分别为:fid=1标准输出文件,fid=2标准错误文件。文件的打开fid=fopen('output.txt','wt+');fprintf(fid,'Hellowo
3、rld!');fclose(fid);fprintf(1,'Helloworld!');fprintf(2,'Helloworld!');文件有两种格式:二进制文件(b)和文本文件(t)。在Windows下,打开文件的默认是二进制格式,如果要以文本方式打开,则必须在打方式中加上字符't'。若不指定打开方式,则表示只读。文件的打开fid=fopen('output.txt','wt+');其中fid为所要关闭的文件的句柄,status为关闭文件的返回代码,若关闭成功则为0,否则为-1。status=fclose(fid);文件的关
4、闭A用来存放读取的数据count返回读取数据的个数,为可选项fid为文件句柄size为可选项,缺省为读取整个文件,若给出,则取值可以是:[A,count]=fscanf(fid,format,size)文本文件的读取N读取N个数据到一个列向量Inf读取整个文件[m,n]读取mn个数据到一个mn矩阵中,按列存放c字符型g浮点数(自动)d十进制整数o八进制e浮点数(科学计数法)s字符串f浮点数(小数形式)x十六进制文本文件的读取format用来控制读取的数据格式,由%加上格式符组成,下表中是常见的格式符,在%之后可以加上数据宽度,如%12
5、d将输出变量按指定的格式写入文件中若省略fid,则表示在屏幕上输出count返回所写入的数据元素个数(可省)format以%开头,通常由以下几个部分组成:count=fprintf(fid,format,输出变量列表)flags(optional)Widthandprecisionfields(optional)Conversioncharacter(required)文本文件的写入fprintf举例fprintf('a=%-12.5f',123.456)format以%开头flagfieldwidthprecision格式说明符-:左
6、对齐+:输出符号0:空白处添0空格:前面加一空格字段宽度小数点后输出位数文本文件的写入fprintf命令的格式说明符c字符型g浮点数(自动)d十进制整数o八进制e浮点数(科学计数法)s字符串f浮点数(小数形式)x/X十六进制format中还可以使用的特殊字符b退后一格t水平制表符f换页\反斜杠换行''单引号r回车%%百分号x=0:0.1:1;y=[x;exp(x)];fid=fopen('output.dat','wt');fprintf(fid,'xexp(x)');fprintf(fid,'%6.2f%12.8f
7、',y);status=fclose(fid);例:文本文件的写入举例[A,count]=fread(fid,size,precision)N读取N个数据到一个列向量Inf读取整个文件[m,n]读取mn个数据到一个mn矩阵中,按列存放二进制文件的读写A用来存放读取的数据count返回读取数据的个数,可选项fid为文件句柄size为可选项,缺省为读取整个文件,若给出,则取值可以是:precision代表读取的数据的类型,缺省为uchar'uchar'无符号字符'uint16'16位无符号整数'schar'带符号字符'uint32'32
8、位无符号整数'int8'8位带符号整数'uint64'64位无符号整数'int16'16位带符号整数'float32'32位浮点数'int32'32位带符号整数'float64'