[aa,cn]=fscanf(fn1,'%d,%d',[2,11]) fclose(fn1)
size为可选项,若不选用则读取整个文件内容,若选用则它的值可 以是下列值:
(1) N表示读取 N个元素到一个列向量。 (2) Inf表示读取整个文件。
(3) [M,N]表示读数据到M×N的矩阵中,数据按列存放。 9.3 自由文本格式文件的读取 打开文件:fn=fopen(‘aaa.m’) 读取字符串文件:fgetl(fn)
功能:从代号fn的文件中读取一行字符串,串中 不包括后面的回车符,当读到文件末尾时返回-1。 %input File :(name: data1.m) fdjkjkfdsjk 2.3 5.6 3.4
---------------------------------- %read File:
fn1=fopen('data1.m') asr=fgetl(fn1)
aa=fscanf(fn1,'%f',inf) fclose(fn1)
---------------------------------------------------------- %input File 22:(name: data1.m) fdjkjkfdsjk 2.3,5.6 3.4
--------------------
fn2=fopen('data1.m') asr=fgetl(fn2)
aa=fscanf(fn2,'%f,%f',inf) fclose(fn2)
9.4 数据文件定位
MATLAB提供了与文件定位操作有关的函数
fseek和ftell。fseek函数用于定位文件位置指针, 其调用格式为:
status=fseek(fid, offset, origin)
其中fid为文件句柄,offset表示位置指针相对移动的字节 数,origin表示位置指针移动的参照位置。若定位成功, status返回值为0,否则返回值为–1。 ftell函数返回文件指针的当前位置, 其调用格式为: position=ftell (fid)
返回值为从文件开始到指针当前位置的字节数。若返回值为–1表示获取文
件当前位置失败。 %input File 33:(name: data1.m) fdjkjkfdsjk 2.3,5.6 3.4
-------------------------- fn2=fopen('data1.m') asr=fgetl(fn2) pos=ftell(fn2)
status=fseek(fn2,4,0) aa=fscanf(fn2,'%f',inf) fclose(fn2)
%%%%%%%%%%File 10(charnum.dat) the input number:100 The output data :20.80 %%%%%%%%%%File 11 fn=fopen('charnum.dat','r') st=fseek(fn,17,0) aa=fscanf(fn,'%f\\n',1) st=fseek(fn,17,0) aa1=fscanf(fn,'%f',1) fclose(fn)
9.5 图形文件的读写与显示 imread(读图像) imwrite(写图像)
imfinfo(显示图像文件信息) image(显示图像内在函数)
图像格式:bmp,jpeg,jpg,tif,tiff,png等。 (读写图形文件)
A=imread('winfft1','bmp') whos A
%image(A),set(gca,'visible','off') imwrite(A,'wnft1.jpg','jpg') t1=imread('wnft1','jpg')
image(t1),set(gca,'visible','off')
(读地震数据的一道,道头为120个整数,道长为480个实数) fn=fopen('sig1.dat','rb')
[aa,cn]=fread(fn,120,'integer*4') position=ftell(fn)
[bb,dn]=fread(fn,480,'real*4') fclose(fn)