- Matlab R2016a从入门到精通 (CAX工程应用丛书)
- 温欣研
- 729字
- 2020-11-28 23:50:36
3.3 读写文本文件
文本文件MATLAB提供读写文本文件的函数包括fprintf、fgetl和fgets等,下文结合示例介绍使用这些函数进行读写操作的方法。
3.3.1 写文本文件
fprintf函数将数据转换成指定格式字符串,写入文本文件中。其调用格式可以为:
count=fprintf(fid, format, y)
其中fid是要写入的文件标识,由fopen函数产生;format是格式类型标识,用以指定数据写入文件的格式;y是MATLAB的数据变量;count是返回的成功写入的字节数。
fid值也可以是代表标准输出的1和代表标准出错的2,如果fid字段省略,则默认值为1,此时将结果输出到屏幕上。常用的格式类型标识如下:
● %e 科学计数形式,即数值表示成a×10b形式;
● %f 固定小数点位置的数据形式;
● %g 在上述两种格式中自动选取较短的格式。
该函数可以使用一些特殊格式,如\n、\r、\t、\b、\f等来产生换行、回车、tab、退格等字符,并用\\来产生反斜线符号\,用%%来产生百分号。此外,该函数还可以包括数据占用的最小宽度和数据精度的说明。
例3-7,写文本文件。
在命令行窗口中输入:
x = 0:0.25:1; y = [x; sin(x)]; %创建矩阵 fid = fopen('exptable.txt', 'w'); %打开将写入的文件 fprintf(fid, 'Sin Function\n\n'); %写入首行 fprintf(fid, '%f %f\n', y); %写入矩阵 fclose(fid); %关闭文件 type exptable.txt %列表显示文件
输出结果如下:
Sin Function 0.000000 0.000000 0.250000 0.247404 0.500000 0.479426 0.750000 0.681639 1.000000 0.841471
在本例中,第一条fprintf语句输出一行标题,随后换行;第二条fprintf语句输出函数值表,每组自变量和函数值占一行,都是固定小数点位置的形式。
提示
sprintf函数与fprintf函数功能类似,但是sprintf将数据以字符串形式返回,而不是直接写入文件。
3.3.2 读文本文件
在MATLAB中可以使用fgetl和fgets函数读取文本文件。两函数的调用格式如下:
tline=fgetl(fid) tline=fgets(fid)
提示
两个函数的功能很相似,均可从文件中读取一行数据,区别在于fgetl会舍弃换行符,而fgets则保留换行符。
例3-8,读文本文件示例。
在命令行窗口中输入:
fid=fopen('fgetl.m'); tline1 = fgetl(fid) fclose(fid); fid=fopen('fgetl.m'); tline2 = fgets(fid) fclose(fid); whos tline1 tline2
命令行窗口中的输出结果如下:
tline1 =function tline = fgetl(fid) tline2 =function tline = fgetl(fid) Name Size Bytes Class Attributes tline1 1x27 54 char tline2 1x28 56 char