l晚风 发表于 2010-5-19 21:14

matlab 怎么将cell转换成其他类型的矩阵,有char和double的

要训练一个数据集,从excel导进去以后是cell型的,可是我需要它还原成原来的数据类型,由于又有数值型又有字符型,而且数据集较大,自己忙乎了好几天一直没有解决,作为新手来这儿请教各位高手,请大家多多帮忙!万分感谢!!!
cell2mat函数用过可是还不是非常明白
附上了部分数据,每行表示一个属性的值的集合,没列表示一个元组。

ChaChing 发表于 2010-5-19 22:26

load train_p.mat
aa=cell2mat(small_train_p(1,:))
aa2=char(small_train_p(2,:))
...

l晚风 发表于 2010-5-20 09:52

回复 沙发 ChaChing 的帖子

谢谢你!可是还是有一点问题,
用char的话 aa2就变成字符矩阵了呀,不是字符串的存在形式了,怎么解决呢?
另外还有个问题,字符矩阵和数值矩阵的合并该怎么办呢?
我尝试了下,得到的结果数值那部分像乱码@@

我现在是需要把这些有各种类型的数据的数据集应用大到C4.5算法中,像weka软件就不必对数据类型费心思,难不成我的思路是错的?啊。。。纠结死了

[ 本帖最后由 ChaChing 于 2010-5-22 01:35 编辑 ]

ChaChing 发表于 2010-5-21 01:12

...用char的话 aa2就变成字符矩阵了呀,不是字符串的存在形式了...
个人水平专业有限, 不清楚这句含义!?
... 字符矩阵和数值矩阵的合并...
help num2str ???

l晚风 发表于 2010-5-21 09:34

回复 地板 ChaChing 的帖子

例如:
'YES'
'NO'
'NO'
...
这么一个矩阵,由excel导入到matlab中,命名为YS,是cell型的
>> class(YS)
ans =
cell
用了char函数以后,>> ys=char(YS)
>> size(YS)%原来是12*1矩阵
ans =
    12   1   
>> size(ys)   %现在是12*3矩阵
ans =
    12   3   
>> ys(1)
ans =
Y          %取第一个是Y而不是YES

我估计是matlab还没有这个功能是么?不能直接处理既可以有字符型也可以有数值型的矩阵(但不是cell型的),需要自己写代码,在用到的时候转换的吧。
要进行挖掘的话会对数值计算,不能把它转化成字符的。

真的很谢谢你,这么认真地回答我的问题(在其他好几个地方都有发帖询问可是没有回音,呵呵),真的让人很感动!再次谢谢!

[ 本帖最后由 ChaChing 于 2010-5-22 01:37 编辑 ]

ChaChing 发表于 2010-5-22 01:35

>> ys(1)
ans =
Y          %取第一个是Y而不是YES ...
应使用ys(1,:) %取第一个YES

matlab的文字矩阵本来就是一个char一个size, char(YS)后尚有补空格
还有客气了, 刚好会而已!

[ 本帖最后由 ChaChing 于 2010-5-22 01:40 编辑 ]

l晚风 发表于 2010-5-24 23:16

回复 6楼 ChaChing 的帖子

请问 ChaChing懂matlab在数据挖掘方面的应用么?我写了一个C4.5的算法,然后找了个属性只有double型的数据集(避免上边提及的问题)想在上面实验,可是一开始就出错了
Undefined function or method 'C4_5' for input arguments of type 'double'.
为什么又会不适应double型的?!实在难以理解。。。。算法中明明有对连续属性的处理,而且这个问题是一开始就出现的,感觉不是某句代码的问题,而是这整个算法的问题,不能理解不能理解。。。。。

ChaChing 发表于 2010-5-24 23:33

个人水平专业有限, 没学过数据挖掘! :@L
但给齐出错代码, 能重复你的出错提示, 我想较能够试试并给修改建议!?

看看这两帖, 参考下
建议提问的网友分清 编程问题 和 专业问题
http://forum.vibunion.com/forum/viewthread.php?tid=36746&extra=&page=1
提问的智慧!!!!(发帖前请认真阅读)
http://forum.vibunion.com/forum/viewthread.php?tid=21991

l晚风 发表于 2010-5-25 09:42

回复 8楼 ChaChing 的帖子

嗯,仔细看了,谢谢你。我自己再努力试试,争取找到具体的问题所在~
页: [1]
查看完整版本: matlab 怎么将cell转换成其他类型的矩阵,有char和double的