matlab 怎么将cell转换成其他类型的矩阵,有char和double的
要训练一个数据集,从excel导进去以后是cell型的,可是我需要它还原成原来的数据类型,由于又有数值型又有字符型,而且数据集较大,自己忙乎了好几天一直没有解决,作为新手来这儿请教各位高手,请大家多多帮忙!万分感谢!!!cell2mat函数用过可是还不是非常明白
附上了部分数据,每行表示一个属性的值的集合,没列表示一个元组。 load train_p.mat
aa=cell2mat(small_train_p(1,:))
aa2=char(small_train_p(2,:))
...
回复 沙发 ChaChing 的帖子
谢谢你!可是还是有一点问题,用char的话 aa2就变成字符矩阵了呀,不是字符串的存在形式了,怎么解决呢?
另外还有个问题,字符矩阵和数值矩阵的合并该怎么办呢?
我尝试了下,得到的结果数值那部分像乱码@@
我现在是需要把这些有各种类型的数据的数据集应用大到C4.5算法中,像weka软件就不必对数据类型费心思,难不成我的思路是错的?啊。。。纠结死了
[ 本帖最后由 ChaChing 于 2010-5-22 01:35 编辑 ] ...用char的话 aa2就变成字符矩阵了呀,不是字符串的存在形式了...
个人水平专业有限, 不清楚这句含义!?
... 字符矩阵和数值矩阵的合并...
help num2str ???
回复 地板 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 编辑 ] >> ys(1)
ans =
Y %取第一个是Y而不是YES ...
应使用ys(1,:) %取第一个YES
matlab的文字矩阵本来就是一个char一个size, char(YS)后尚有补空格
还有客气了, 刚好会而已!
[ 本帖最后由 ChaChing 于 2010-5-22 01:40 编辑 ]
回复 6楼 ChaChing 的帖子
请问 ChaChing懂matlab在数据挖掘方面的应用么?我写了一个C4.5的算法,然后找了个属性只有double型的数据集(避免上边提及的问题)想在上面实验,可是一开始就出错了Undefined function or method 'C4_5' for input arguments of type 'double'.
为什么又会不适应double型的?!实在难以理解。。。。算法中明明有对连续属性的处理,而且这个问题是一开始就出现的,感觉不是某句代码的问题,而是这整个算法的问题,不能理解不能理解。。。。。 个人水平专业有限, 没学过数据挖掘! :@L
但给齐出错代码, 能重复你的出错提示, 我想较能够试试并给修改建议!?
看看这两帖, 参考下
建议提问的网友分清 编程问题 和 专业问题
http://forum.vibunion.com/forum/viewthread.php?tid=36746&extra=&page=1
提问的智慧!!!!(发帖前请认真阅读)
http://forum.vibunion.com/forum/viewthread.php?tid=21991
回复 8楼 ChaChing 的帖子
嗯,仔细看了,谢谢你。我自己再努力试试,争取找到具体的问题所在~
页:
[1]