例如:
>> temp = table([1; 2], {'a'; 'b'});
temp =
Var1 Var2
____ ____
1 'a'
2 'b'
有没有办法找出这个表的每一列中的数据类型?数据类型是否也是重要的,我是使用数组创建第一列还是使用单元格数组来创建第二列?
编辑:我实际上正在寻找一个接受temp
作为输入的函数,并返回包含列类型的某种数组,例如:
>> columnType(temp)
ans = {'double' 'cell'}
虽然知道class(temp.Var1)
返回temp
第一列的列类型是非常好的,但当表有很多列时,它会变得乏味。
答案 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'