MATLAB文件各种操作方法(全)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1 文件的打开和关闭

1.1.1 文件的打开

fopen ('filename', 'mode')

mode格式有:

‘r’:只读方式打开文件(默认的方式),该文件必须已存在。

‘r+’:读写方式打开文件,打开后先读后写。该文件必须已存在。

‘w’:打开后写入数据。该文件已存在则更新;不存在则创建。

‘w+’:读写方式打开文件。先读后写。该文件已存在则更新;不存在则创建。

‘a’:在打开的文件末端添加数据。文件不存在则创建。

‘a+’:打开文件后,先读入数据再添加数据。文件不存在则创建。

如果rt表示该文件以文本方式打开,如果添加的是“b”,则以二进制格式打开,这也是fopen函数默认的打开方式。

Fopen函数两个返回值:

1、一个是返回一个文件标识(file Identifier),它会作为参数被传入其他对文件进

行读写操作的命令,通常是一个非负的整数,可用此标识来对此文件进行各种处理。

(如果返回的文件标识是–1,则代表fopen无法打开文件,其原因可能是文件不

存在,或是用户无法打开此文件权限);

2、另一个返回值就是message,用于返回无法打开文件的原因;

例:1-1

[f,message]=fopen('fileexam1', 'r')

if f==-1

disp(message); %显示错误信息

end

(若文件fileexam1不存在,则显示如下信息。

Cannot open file.existence?permissions?memory?)

例:1-2

[f,message]=fopen('fileexam2', 'r');

if f==-1

disp (message); %显示错误信息

else

disp(f);

end

若文件fileexam2存在,则返回f值。

1.1.2文件的关闭

Fclose(f)

F为打开文件的标志,若若fclose函数返回值为0,则表示成功关闭f标志的文件;若返回值为–1,则表示无法成功关闭该文件。(打开和关闭文件比较耗时,最好不要在循环体内使用文件)

若要一次关闭打开的所有文件,可以使用下面的命令:fclose all

1.2文本数据

MATLAB自带的MAT文件为二进制文件,但为了便于和外部程序进行交换以及方便查看文件中的数据,也常常采用文本数据格式(数据采用ASCII码格式,可以表示字母和数字字符)与外界进行数据交换。

1.2.1 从文本文件中读取数据

1、使用导入模板来读取数据

2

如:A=load('my_data.txt');

3、读取有分隔符的ASCII数据文件

如果数据文件不使用空格符而是使用逗号或是其他符号作为分隔符,用户可以选择多个可用的导入数据函数。最简单的便是使用函数dlmread。

例2-1

lcode.dat

0.3445,0.8433,0.7865

0.7562,0.4233,0

A=dlmread('lcode.dat',',')

(分隔符只能选取单个字符,不能用字符串来作为分隔符)

4. 使用文本头读取数值数据

要读取一个包含文本头的ASCII码数据文件,可以使用textread函数,并指定头行参数。Textread既能处理有固定格式的文件,也可以处理无格式的文件,还可以对文件中每行数据按列逐个读取。

textread函数常见的调用方法有如下几种:

[A,B,C...]=textread('filename', 'format')

[A,B,C...]=textread('filename', 'format',N)

例2-2

num1 num2 num3 num4

0.3242 0.4324 0.3455 0.6754

0.4566 0.9368 0.9892 0.9274

0.4658 0.2832 0.9373 0.8233

因为有文件头,要使用如下textread命令来读取文件中的数据。

>> [num1 num2 num3

num4]=textread('my_data.txt','%f %f %f %f','headerlines',1)

执行结果如下:

num1 =

0.3242

0.4566

0.4658

num2 =

0.4324

0.9368

0.2832

num3 =

0.3455

0.9892

0.9373

num4 =

0.6754

0.9274

0.8233

5. 读取字母数值混合的数据

例2-3

文件my_exam.dat包含的混合的字母和数值如下:

Joe gradeA 4.9 pass

susan gradeD 2.0 fail

如果想把4列数据全部读取出放在4个变量中,则使用如下命令:

>> [name gra grades answer]=textread('my_exam.dat','%s %s %f %s') (textread 函数按格式字符串中指定的格式处理文件中的某个数据项,并把值放在输出变量中。输出变量的数目必须和格式字符串中指定的变换数目项匹配,在该例中,函数按格式字符串来读取文件)

相关文档
最新文档