hehaibin 发表于 2007-12-6 16:10

关于Matlab读入数据问题

各位大侠:
(1)原始数据存在data.txt,很大!20M!
(2)每行为一个样本,
例如:第一行为 38 1 50 2 60 3   95 2 200 1 500 2 ...
其格式为:属性 属性值 属性 属性值 属性 属性值...
(3)各行出现的属性个数不同。
现需将每行化为同维的,
即先将其化为 0 0 ... 1 0 0 0... 2 0 0 ... 3 0 0... 2   0 0 ... 1 0 0 ...   2   
不知是否描述清楚了?
请帮忙解决!万分感激!!!

[ 本帖最后由 eight 于 2007-12-6 18:32 编辑 ]

bjb05 发表于 2007-12-6 16:33

原帖由 hehaibin 于 2007-12-6 16:10 发表 http://www.chinavib.com/forum/images/common/back.gif
各位大侠:
(1)原始数据存在data.txt,很大!20M!
(2)每行为一个样本,
例如:第一行为 38 1 50 2 60 3   95 2 200 1 500 2 ...
其格式为:属性 属性值 属性 属性值 属性 属性值...
(3)各行出现的属 ...

我是出学但知道一点,有个loaddata在开始菜单下,可以先加载进去再对矩阵进行处理啊,这是比较简单的,也可以用load命令,但格式需要查help文件了,
希望可以帮助……

eight 发表于 2007-12-6 18:33

原帖由 hehaibin 于 2007-12-6 16:10 发表 http://www.chinavib.com/forum/images/common/back.gif
各位大侠:
(1)原始数据存在data.txt,很大!20M!
(2)每行为一个样本,
例如:第一行为 38 1 50 2 60 3   95 2 200 1 500 2 ...
其格式为:属性 属性值 属性 属性值 属性 属性值...
(3)各行出现的属 ...

请先看看相关帖子,特别是精华区的帖子

hehaibin 发表于 2007-12-7 10:58

主要是文件太大,无法读入内存。

chenxinrui 发表于 2007-12-7 12:06

如果文件都是由数值而不是字符组成,可以用load命令导入
data=load('data.txt');
要保证data.txt在你matlab的工作目录下
也可以用fid=fopen('data.txt')打开文件,然后用textscan命令读取数据,具体看matlab的help吧,比较详细了。
你的文件不大,我试过的,20M可以读入的

eight 发表于 2007-12-7 16:21

原帖由 hehaibin 于 2007-12-7 10:58 发表 http://www.chinavib.com/forum/images/common/back.gif
主要是文件太大,无法读入内存。
分批读取

hehaibin 发表于 2007-12-19 15:08


去掉属性编号,只留属性值,未出现的属性令其值为0,
即将第一行化为
0   0 ... 1   ... 2   ... 3   ... 2   ... 1   ...   2   ...
(1   2 ... 38 ... 50 ... 60 ... 95 ... 200 ... 500 ...)
其他行类似处理,各行出现的属性个数不同。
请帮忙指点!!!

[ 本帖最后由 hehaibin 于 2007-12-19 20:10 编辑 ]

sigma665 发表于 2007-12-19 15:43

看不明白
去掉属性编号,只读入奇数项?

jinking 发表于 2007-12-24 19:44

有个loaddata的图标,点击后会有一些提示,这样可以读进去!

happy 发表于 2007-12-25 09:47

参考http://forum.vibunion.com/forum/viewthread.php?tid=8937

读入一行处理一行,多大的文件都能处理
页: [1]
查看完整版本: 关于Matlab读入数据问题