matlab中读取txt数据文件(txt文本文档)
2012-02-24 08:22
1571 查看
根据txt文档不同种类介绍不同的读取数据方法
一、纯数据文件(没有字母和中文,纯数字)
对于这种txt文档,从matalb中读取就简单多了
例如test.txt文件,内容为
17.901 -1.1111 33.045
17.891 -1.1286 33.045
17.884 -1.1345 33.045
可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。
二、中英文和数据如test1.txt
你好
欢迎来到
论坛
edu.cn
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
这样的文件怎么读入数据呢?
方法有多种,现举两个比较简单实用的。
方法一:
file/import data....../next/finish
>> whos
Name Size Bytes Class
data 5x4 160 double array
textdata 4x1 300 cell array
Grand total is 54 elements using 460 bytes
>> data
data =
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
>> textdata
textdata =
'你好'
'欢迎来到'
'论坛'
'edu.cn'
方法二:
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。
这里%s的个数和[a1,a2,a3,a4]对应。
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
a1 =
'1'
'2'
'3'
'4'
'5'
a2 =
'11'
'22'
'33'
'44'
'55'
a3 =
'111'
'222'
'333'
'444'
'555'
a4 =
'1111'
'2222'
'3333'
'4444'
'5555'
因以字符串的形式读入,所以有''。
————————————————————————————————
三、中文 数据 英文 混乱如test.txt
你好
1 11 111 1111
欢迎来到
2 22 222 2222
论坛
3 33 333 3333
edu.cn
4 44 444 4444
5 55 555 5555
说明:这种内容格式的文件用上面的方法是不行的。
以下是由chinamaker编写的一种方法:
fidin=fopen('test.txt'); % 打开test2.txt文件
fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值
fprintf(fidout,'%s\n\n',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txt
continue % 如果是非数字继续下一次循环
end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来
>> MK
MK =
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
---------------------------------------------------------------
http://hi.baidu.com/youngbrave/blog/item/878db31fcd4f220f304e15bb.html
一、纯数据文件(没有字母和中文,纯数字)
对于这种txt文档,从matalb中读取就简单多了
例如test.txt文件,内容为
17.901 -1.1111 33.045
17.891 -1.1286 33.045
17.884 -1.1345 33.045
可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。
二、中英文和数据如test1.txt
你好
欢迎来到
论坛
edu.cn
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
这样的文件怎么读入数据呢?
方法有多种,现举两个比较简单实用的。
方法一:
file/import data....../next/finish
>> whos
Name Size Bytes Class
data 5x4 160 double array
textdata 4x1 300 cell array
Grand total is 54 elements using 460 bytes
>> data
data =
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
>> textdata
textdata =
'你好'
'欢迎来到'
'论坛'
'edu.cn'
方法二:
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。
这里%s的个数和[a1,a2,a3,a4]对应。
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
a1 =
'1'
'2'
'3'
'4'
'5'
a2 =
'11'
'22'
'33'
'44'
'55'
a3 =
'111'
'222'
'333'
'444'
'555'
a4 =
'1111'
'2222'
'3333'
'4444'
'5555'
因以字符串的形式读入,所以有''。
————————————————————————————————
三、中文 数据 英文 混乱如test.txt
你好
1 11 111 1111
欢迎来到
2 22 222 2222
论坛
3 33 333 3333
edu.cn
4 44 444 4444
5 55 555 5555
说明:这种内容格式的文件用上面的方法是不行的。
以下是由chinamaker编写的一种方法:
fidin=fopen('test.txt'); % 打开test2.txt文件
fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值
fprintf(fidout,'%s\n\n',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txt
continue % 如果是非数字继续下一次循环
end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来
>> MK
MK =
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
---------------------------------------------------------------
我的txt数据里既有数字又有字符串,形式为: 0.129515 DDAA 01 2.24609 94.50000 98 0.130434 DDAA 01 2.24609 96.30000 9A 0.131441 DDAA 01 2.24609 97.20000 9B 0.132448 DDAA 01 2.24609 99.00000 9D 0.133507 DDAA 01 2.24609 100.80000 9F 0.134515 DDAA 01 2.24609 101.70000 A0 ............ 我只想要第一列,第四列,第五列。 也就是0.129515 2.24609 94.50000 这3列数, 怎样导入matlab啊?
假设数据在data.txt里,且位于当面matlab路径里,用下面这句就可以了 [col1,col2,col3]=textread('data.txt','%f %*s %*d %f %f %*s',-1);
---------------------------------------------------------------
http://hi.baidu.com/youngbrave/blog/item/878db31fcd4f220f304e15bb.html
相关文章推荐
- matlab中读取txt数据文件(txt文本文档)
- matlab中读取txt数据文件(txt文本文档)
- MATLAB处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
- matlab处理txt文本文件---数据格式要有规律性,否则要用编写特定方式进行读取
- Matlab读取Excel、txt文件数据
- MATLAB中批量从txt文件中读取指定行的数据保存为txt文件
- matlab读取txt,excel文件数据,图中图,局部放大
- 【matlab】对每一行数据不等的txt文件读取问题
- matlab读取txt文档中的数据
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭
- 将Matlab中的数据输出到指定的txt文本文件中
- matlab中如何读取TXT数据文件中指定行的数据?
- matlab写数据到txt文件,C语言读取文件内容到数组@项目简介:基于PSS序列(频域)估计整数倍频偏
- Matlab读取txt中用空格分隔的数据文件到矩阵
- MATLAB读取txt文件的数据
- Matlab读取txt文本文件总结
- C# Split方法操作取出文本文档txt文件里数据
- matlab中如何读取TXT数据文件
- matlab中如何读取TXT数据文件 (续)
- matlab的各种数据读取(txt,dat,mat等格式),文件打开关闭