dir what matlab,3_matlab讲义_pps_大学课件预览_高等教育资讯网

第三讲文件操作

Matlab环境下的文件与其它系统一样,

也有二类文件组成, 一是文件, 又称 M文件,

另一类是数据文件 。 系统除提供了文件的

一般管理功能外, 还提供了对数据文件进

行操作的特殊功能函数 。

3.1 基本命令

1,help 帮助命令

格式, help 命令名

例如, help plot

help matlab\general

2,what 显示目录内容命令

格式, what [目录名 ]

例如,,what matlab

显示 matlab目录下的所有 M-文件。

3.1 基本命令

3,type 显示文件内容命令

格式, type文件名

显示 M-文件的内容。

4,寻找命令

格式, lookfor 命令或字符串

寻找命令或字符串是否存在。

例如,lookfor cos

3.1 基本命令

5,which 寻找函数命令

格式,which 函数名

显示函数所在的文件位置,给出路径。

例如,which pinv

6, path 路径控制命令

格式,path [路径 ]

显示或改变搜索路径。

例如,path ( path,‘ d,\test\aaa’)

3.1 基本命令

7,who,whos 显示变量命令

显示当前变量。 whos命令更详细。

8, load,save 取出与保存结果命令

从磁盘上读出或保存计算结果。

例如,save test

将变量存入 test.mat文件中。

例如,save test x y 仅保存 x, y 变量。

3.1 基本命令

9, clear 清除变量命令

格式,[变量名 ]

例如,clear x y

10, disp 显示文本或变量内容命令

例如,x=[1 2 3]

disp(x)

y=‘aaaaaaa’

disp(y)

3.1 基本命令

11, cd 改变目录命令

与 DOS类似。

12, dir 显示目录内容命令

显示目录里的文件。

例如,dir \matlab\notebook

3.1 基本命令

13,delete 删除文件或对象命令

格式,delete 文件名 不能用通配符

delete(对象)

例如,H=PLOT( X,X)

delete (H)

删除图形对象 H

3.1 基本命令

14.! 执行系统命令

在 Windows下运行。“!”用于执行

DOS命令。

例如:! dir *.exe

显示当前目录里的 EXE文件。

3.2 文件的打开与关闭

Matlab提供了对数据文件建立, 打开,

读, 写以及关闭等一系列函数, 数据文件

一般存放在磁盘等介质上, 用文件名标识,

系统对文件名没有特殊要求 。 文件数据格

式有二种形式, 一是二进制格式文件, 二

是 ASCII文本文件, 系统对这两类文件提供

了不同的读写功能函数 。

3.2 文件的打开与关闭

1 fopen打开文件

在读写文件之前, 必须先用 fopen命令打

开一个文件, 并指定允许对该文件进行的

操作 。 文件操作结束后, 应及时关闭文件,

以免数据的丢失或误修改 。 fopen函数格式

为:

Fid= fopen(filename,permission)

3.2 文件的打开与关闭

其中 filename为文件名,permission为文件格

式,可以是下列格式之一:

? ‘ r’ 打开文件,读数据,文件必须存在。

? ‘ w’ 打开文件,写数据,若文件不存在,系统会自动建

立。

? ‘ a’ 打开文件,在文件末尾添加数据。

? ‘ r+’ 打开文件,可以读和写数据,文件必须存在。

? ‘ w+’ 打开文件,供读与写数据用。

? ‘ a+’ 打开文件,供读与添加数据用。

? ‘ W’ 打开文件供写数据用,无自动刷新功能。

? ‘ A’ 打开文件供添加数据用,无自动刷新功能。

3.2 文件的打开与关闭

例如:打开一个名为 std.dat的数据文件

并进行读操作, 其命令格式为:

Fid=fopen( ‘std.dat’,’r’ )

上述打开格式均为二进制格式, 如果想

用 ASCII文本格式, 则必须在格式字符串中

加上字符 t,例如用 ’ r t’表示以 ASCII格式

打开供读操作的数据文件 。

3.2 文件的打开与关闭

2 fclose关闭文件

文件在进行完读, 写等操作后, 应及时

关闭, 以保证文件的安全可靠 。 关闭文件

命令格式为:

Sta=fclose(Fid) 关闭 Fid所表示的文件

Sta表示关闭文件操作的返回代码, 若关

闭成功, 返回 0,否则返回 –1。

3.3 文件的读写操作

1 二进制数据文件

fread 读二进制数据文件 。 格式为:

[A,COUNT]=fread(Fid,size,precision)

其中 A为数据矩阵, COUNT返回所读取

的数据元素个数 。 size为可选项, 若不选用

则读取整个文件内容, 若选用它的值可以

是下列值:

3.3 文件的读写操作

N 读取 N个元素到一个列向量。

inf 读取整个文件。

[M,N] 读数据到 M× N的矩阵中,数据按

列存放。

3.3 文件的读写操作

precision用于控制所读数据的精度格式 。

缺省格式为 uchar,即无符号字符格式 。

例如,Fid=fopen(‘std.dat’,‘r’);

A=fread(Fid,100,’long’);

Sta=fclose(fid);

以读数据方式打开数据文件 std.dat,并按长

整型数据格式读取文件的前 100个数据放入

向量 A,然后关闭文件 。

3.3 文件的读写操作

fwrite 函数以二进制格式向数据文件写

数据, 其格式为:

COUNT=fwrite (Fid,A,precision)

例如,Fid=fopen(‘magic5.bin’,‘wb’);

fwrite(Fid,magic,’int32’);

上述语句将矩阵 magic中的数据写入文件

magic5.bin中, 数据格式为 32位整型二进

制格式 。

3.3 文件的读写操作

【 例 1】 建立一数据文件 test.dat,用于存放矩

阵 A的数据 。

已知 A=[-0.6515 -0.2727 -0.4354 -0.3190 -0.9047

-0.7534 -0.4567 -0.3212 -0.4132 -0.3583

-0.9264 -0.8173 -0.7823 -0.3265 -0.0631

-0.1735 -0.7373 -0.0972 -0.3267 -0.6298

-0.4768 -0.6773 -0.6574 -0.1923 -0.4389]

3.3 文件的读写操作

Fid=fopen(‘test.dat’,‘w’)

cnt=fwrite(Fid,A,‘float’)

fclose(Fid)

程序段将矩阵 A的数据以二进制浮点数格

式写入文件 test.dat中 。

Fid=fopen(‘test.dat’,‘r’)

[B,cnt]=fread(Fid,[5,inf],‘float’)

fclose(Fid)

读取文件 test.dat的内容 。

3.3 文件的读写操作

2 文本文件

fscanf 读 ASCII文本文件

[A,COUNT]= fscanf (Fid,format,size)

其中 A为数据矩阵, 用以存放读取的数

据, COUNT返回所读取的数据元素个数 。

format用以控制读取的数据格式, 由 %加

上格式符组成, 格式符为:

d,i,o,u,x,e,f,g,s,c与 [.,,]

3.3 文件的读写操作

例如:

s=fscanf(fid,‘%s’) 读取一个字符串

a=fscanf(fid,‘%5d’) 读取 5位数的整数

b= fscanf(fid,‘%6.2d’) 读取浮点数

3.3 文件的读写操作

fprintf 写 ASCII数据文件,其格式为:

COUNT= fprintf(Fid,format,A,… )

其中 A为要写入文件的数据矩阵, 先按 format格

式化数据矩阵 A,后写入到 Fid所指定的文件 。

例如,x = 0,0.1,1;

y = [x; exp(x)];

Fid = fopen('exp.txt','w');

fprintf(Fid,'%6.2f %12.8f\n',y);

fclose(Fid);

3.4 数据文件定位写操作

1.fseek函数定位文件位置指针, 格式为:

status=fseek( Fid,offset,origin)

其中 Fid为文件句柄, offset表示位置指针相对移动的

字节数, 若为正整数表示向文件尾方向移动, 若为负

整数表示向文件头方向移动, origin表示位置指针移动

的参照位置, 它的取值有三种可能,’ cof ’表示文件的

当前位置, ’ bof ’表示文件的开始位置, ’ eof ’表示文

件的结束位置 。 若定位成功 status返回值为 0,否则返回

值为 –1。

3.4 数据文件定位写操作

2,ftell函数返回文件指针的当前位置。

其格式为:

position=ftell (Fid)

返回值为从文件开始到指针当前位置的字

节数 。 若返回值为 –1表示获取文件当前位

置失败 。

3.4 数据文件定位写操作

【 例 2】 下述程序段说明了函数 fseek和 ftell

的使用 。

a=[1,5];

Fid=fopen(‘fdat.bin’,‘w’); 以写方式打开文件 fdat.bin

fwrite(Fid,a,‘int16’ ); 将 a中的 5个数据元素分别以

双字节整型格式写入

status=fclose(Fid); 文件 fdat.bin

Fid=fopen(‘fdat.bin’,‘r’); 以读数据方式打开文件

3.4 数据文件定位写操作

status=fseek(Fid,6,‘bof’); 将文件数据指针从开

始位置向尾部移动 6个字节

four=fread(Fid,1,‘int16’); 读取当前数据, 即第 4个数

据, 并移动指针到下一个数据

position=ftell(Fid);

eight=fread(Fid,1,‘int16’); 读取第 8个数据

status=fclose(Fid);

习题

1.已知文件句柄为 Fid,请写出完成下列

操作的命令或命令序列

a 以读和写方式打开二进制格式数据文件

b 将浮点数 F添加到文件尾部

c 将文件内容以浮雕点数格式读入数据

向量 B

习题

2.建立数据文件 test.dat,要求该文件可以

读、写。文件内容如下:

NAME SCORE

Liuqi 84.0

Zhangbin 87.5

Liping 90.0

Wangwei 78.0

Wujian 92.5

… …

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值