【matlab】textread textscan读取文本文件
(2012-08-23 13:03:10)
标签:
杂谈 |
分类: MATLAB |
1.MATLAB从文本文件中读取格式化的数据函数是textread。
调用方式
[A,B,C,...] = textread('filename','format')
[A,B,C,...] = textread('filename','format',N)
[...] = textread(...,'param','value',...)
输入参数
当调用textread函数时会按照指定的格式从'filename'中读取数据,并将数据分别保存在变量A,B,C中,直到文件内容被读完为止。
下面是读取c:\中的test3.txt文件操作。
>> !type c:\test3.txt
Q1 1 2
Q2 3 4
>> [a1 a2 a3]=textread('c:\test3.txt','%s %f %f')
a1 =
a2 =
a3 =
这样文件test3.txt中的每行分别读入变量a1、a2、a3。
2.TextScan函数读取文本数据
对于具有多行文字说明文本数据文件,最好的办法则是用textscan,或者fscanf读取。
调用方式
C = textscan(fid, 'format')
C = textscan(fid, 'format', N)
C = textscan(fid, 'format', param, value, ...)
C= textscan(fid, 'format', N, param, value, ...)
输入参数
fid
format
format内容
表6.6
|
下面建立新文件test1.txt,文件前2行是字符串,后三行是数组,首先查看其内容。
>>
!type
a1
a2
1
2
注意,在Command窗口下键入“!”后就可以直接执行Dos命令
>>file=fopen('c:\test1.txt','r');%打开需要读取的文件
>> str1=textscan(file,'%s',2) ;
>> str1{1}
ans =
如果需要读取第3行、第4行可以执行下面命令。
>> da=textscan(file,'%f',[3 4]) ;
>> da{1}
ans =
由于da是单元数据,下面将其转换为实数型。
>> cell2mat(da)
ans =
如果数据文件中有间隔符,需要忽略间隔符。
>> type c:\test3.txt
1
32
>> tt=fopen('c:\test3.txt');
>>var=textscan(tt,'%f
>> aa=cell2mat(var)
aa =
结束时需要关闭文件
>> fclose(file)
>> !type c:\test2.txt
2 5 3 6
2 3 5
1 9 5 4
6
>> fid=fopen('c:\test2.txt');
>>for i=1:3 ,a{i}=fgets(fid); end
>>fclose(fid);
ps: 欢迎留言讨论用法.