在matlab中怎么读取txt格式的数据文件
我有一个文本格式的数据文件具体如下:*code1换行1,2,3换行4,5,6换行*code2换行7,8,9也就是一个标题下面就是一个矩阵数据,但注意数据之间有逗号,我想通...
我有一个文本格式的数据文件具体如下:
*code1 换行 1,2,3 换行4,5,6 换行*code2换行7,8,9 也就是一个标题下面就是一个矩阵数据,但注意数据之间有逗号,我想通过matlab将每个标题下数据读取到一个数组中,怎么办?我在网上查的方法不管用,哪位编程高手帮忙解决下,小弟不胜感激! 展开
*code1 换行 1,2,3 换行4,5,6 换行*code2换行7,8,9 也就是一个标题下面就是一个矩阵数据,但注意数据之间有逗号,我想通过matlab将每个标题下数据读取到一个数组中,怎么办?我在网上查的方法不管用,哪位编程高手帮忙解决下,小弟不胜感激! 展开
4个回答
展开全部
根据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
“你好 欢迎来到 振动论坛
vib.hit.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 =
'你好'
'欢迎来到' '振动论坛'
'vib.hit.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'
因以字符串的形式读入,所以有''。
一、纯数据文件(没有字母和中文,纯数字) 对于这种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
“你好 欢迎来到 振动论坛
vib.hit.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 =
'你好'
'欢迎来到' '振动论坛'
'vib.hit.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'
因以字符串的形式读入,所以有''。
展开全部
首先Matlab是可以解决这个问题,这里有哥们写了一些code,我觉得太麻烦了。
给你推荐一个简单办法,进入txt 按CTRL+H 用空格去替代‘,’。问题很简单就解决了。
假设你是三列数据,数据从123.txt第n行开始。读取数据的Matlab格式如下 :
[a1 a2 a3]=textread('123.txt','%f %f %f','headerlines',n-1);
给你推荐一个简单办法,进入txt 按CTRL+H 用空格去替代‘,’。问题很简单就解决了。
假设你是三列数据,数据从123.txt第n行开始。读取数据的Matlab格式如下 :
[a1 a2 a3]=textread('123.txt','%f %f %f','headerlines',n-1);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以直接用importdata这个函数啊。
>>importdata('a.txt')
>>importdata('a.txt')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把数据文件发到matlabguy@163.com,我看一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询