如何查看每个表格列的数据类型

时间:2015-08-07 00:36:51

标签: matlab types

例如:

>> temp = table([1; 2], {'a'; 'b'});

temp = 

    Var1    Var2
    ____    ____

    1       'a' 
    2       'b' 

有没有办法找出这个表的每一列中的数据类型?数据类型是否也是重要的,我是使用数组创建第一列还是使用单元格数组来创建第二列?

编辑:我实际上正在寻找一个接受temp作为输入的函数,并返回包含列类型的某种数组,例如:

>> columnType(temp)

ans = {'double' 'cell'}

虽然知道class(temp.Var1)返回temp第一列的列类型是非常好的,但当表有很多列时,它会变得乏味。

1 个答案:

答案 0 :(得分:1)

不确定。在每个表变量上使用class来查看它们的外观:

>> temp = table([1; 2], {'a'; 'b'})

temp = 

    Var1    Var2
    ____    ____

    1       'a' 
    2       'b' 

>> class(temp.Var1)

ans =

double

>> class(temp.Var2)

ans =

cell

第二种数据类型是有意义的,因为cell数组被设计为可以在每个插槽中存储任何类型的容器。你会认为你会得到char,因为你的单元格数组中的每个元素都是char类型,但更大的图片是你使用cell数组来初始化第二列。

如果您决定使用纯字符,特别是删除{}大括号,我们会这样:

>> temp = table([1; 2], ['a';'b'])

temp = 

    Var1    Var2
    ____    ____

    1       a   
    2       b   

>> class(temp.Var1)

ans =

double

>> class(temp.Var2)

ans =

char

要回答您的第二个问题,不管每列中的数据类型是什么都没关系....只要每列具有相同的数据类型。你可以在一列中加载字符,在另一列中加倍,在另一列中加入单元格,在另一列中加载uint8,依此类推。

如果您想自动执行此操作而不是手动检查每个变量的类,请使用varfun并将函数应用于表中的每个变量:

>> varfun(@class, temp, 'OutputFormat', 'cell')

ans = 

    'double'    'cell'