转换为数据集时,double会转换为单元格 - 为什么?

时间:2013-11-29 14:09:11

标签: matlab variables dataset double cell

我的数据:

me

me =

    2.0000  637.4976  660.8218  670.1036
    3.0000  617.1771  608.4111  616.0435
    4.0000  548.9677  563.2750  555.2890

class(me)

ans =

double

为什么这样做,并创建一个包含4个变量的数据集...

dataset( {me, 'a', 'b', 'c', 'd' } )

ans = 

    a    b         c         d     
    2     637.5    660.82     670.1
    3    617.18    608.41    616.04
    4    548.97    563.27    555.29

......但这不是吗?

vars = { 'a', 'b', 'c', 'd' };
dataset( {me, vars } )

ans = 

    Var1                          
    [3x4 double]    {1x4 cell}

2 个答案:

答案 0 :(得分:4)

您需要使用

dataset( {me, vars{:} } )

vars是一个包含四个字符串的单元格数组,而vars{:}是这些字符串的comma-separated list,这就是您所需要的。

答案 1 :(得分:1)

在第一个语句中,您尝试将双变量与字符串变量组合在一起。

而在第二个语句中,您尝试将双变量与单元格数组合。

为了使您的第二个语句与第一个语句的行为相同,您需要访问单元格数组的各个元素,可以使用{:}进行访问,如下所述:http://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-cell-array.html