Matlab文件与程序接口
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
同例8-1文件中的数据格式。
7
8.1.3 文件定位和文件状态
1.feof函数:检测文件是否已经结束
status=feof(fid)
2.ferror函数:用于查询文件的输入、输出错误信息
msg=ferror(fid)
frewind(fid) status=fseek(fid, offset, origin) position=ftell(fid);
fscanf函数
[A, count]=fscanf(fid, format, size)
5
Biblioteka Baidu
例8-1
计算当x=[0 1]时f(x)=ex的值,并将结果写入到 文件my.txt中。 程序 x=0:0.1:1; y=[x;exp(x)]; %y有两行数据 fid=fopen('my.txt','w'); fprintf(fid,'%6.2f %12.8f\n',y); fclose(fid);
14
8.1.6 图像、声音文件的读写
1.imread函数:从文件中读入图像
A = imread(filename,fmt) [A, map] = imread(filename,fmt) image(A) imwrite(A, filename, fmt) imwrite(A, map, filename, fmt)
11
8.1.5二进制数据文件的读写
fwrite函数:用于向一个文件写入二进制数据
count=fwrite(fid, A, precision)。
fread函数:用于从文件中读二进制数据
[A,count]=fread(fid, size, precision)
注意:使用函数fread()和fwrite()读写文件时,必须以二 进制方式打开文件
10
例8-4
编写一个程序,用于读取例8-1生成的数据。 程序 fid=fopen('my.txt','r'); while ~feof(fid)%在文件没有结束时按行读取数据 s=fgets(fid); fprintf(1,'%s',s); end fclose(fid); 输出 同例8-1文件中的数据格式。
1.打开和关闭文件
fopen、fclose
2.格式读写
fprintf、fscanf、fgetl、fgets
3.非格式读写
fread、fwrite
4.文件定位和状态
feof、fseek、ftell、ferror、frewind
3
8.1.1文件的打开与关闭
1.fopen函数 fid=fopen(filename,permission) [fid,message]=fopen(filename,permssion) [filename,permission,machineformat]=fopen(fid) fid =fopen('all')
2.fclose函数 status=fclose(fid) status=fclose('all')
例:打开一个名为std.dat的数据文件并进行读操作,命令为:
fid=fopen('my.txt','r')
4
8.1.2格式化数据的读写
fprintf函数
count=fprintf(fid,format , A ...)
主要内容
8.1文件
8.2
应用程序接口
1
8.1文件
文件可分为两类:
文本文件
由字符和与字符的显示格式有关的控制符构成 常见扩展名:“TXT” 、“BAT”、“HTM”
二进制文件
二进制文件为非文本文件 常见扩展名:“COM”、“EXE” 、“BMP” 、 “WAV”
2
MATLAB中基本的低级文件I/O指令:
输出 File Size = 231 File Position = 0
9
8.1.4按行读取数据
1.fgetl函数:按行从文件中读取数据,但不读
取换行符。
line=fgetl(fid)
2.fgets函数:用于从文件中读取行、保留换行
符并把行作为字符串返回。
(1)line=fgets(fid) (2)line=fgets(fid,nchar)
6
例8-2
从上例中生成的文件my.txt中读取数据,并将结
果输出到屏幕。 程序
fid = fopen('my.txt','r'); [a,count] = fscanf(fid,'%f %f',[2 inf]); fprintf(1,'%f %f\n',a); fclose(fid);
输出
程序 [x,map]=imread('C:\MATLAB7\toolbox\matlab\demos\stre et1.jpg'); imwrite(x,'my.bmp'); %将图像保存为真彩色 的bmp [x,map]=imread('my.bmp'); image(x);
12
例8-5
将5行5列“魔方阵”存入二进制文件中。
程序 fid=fopen('my.dat','w'); a=magic(5); fwrite(fid,a,'long'); fclose(fid);
13
例8-6
从二进制文件中读取“魔方阵”。 程序 fid=fopen('my.dat','r'); [A,count]=fread(fid, [5, inf], 'long'); fclose(fid); A
3.frewind函数:使位置指针重新返回文件的开头
4.fseek函数:设置文件的位置指针
5.ftell函数:用于查询当前文件指针的位置
8
例8-3 输出文件的大小。
程序 fid=fopen('my.txt','r'); fseek(fid,0,'eof'); x=ftell(fid); fprintf(1,'File Size=%d\n',x); frewind(fid); x=ftell(fid); fprintf(1,'File Position =%d\n',x); fclose(fid);
2.image函数:显示图像
3.imwrite函数:将图像写入文件
15
例8-7
显示一幅真彩(RGB)图像。 程序 [x,map]=imread('C:\MATLAB7\toolbox\matlab\d emos\street1.jpg'); image(x);
16
例8-8 将图像写入文件