我有一个表格(T(,如下所示:
>> Name = {'John';'Mary';'Martha'};
Age = [10.8;15.11;20.22];
T=table(Name,Age);
>> T
T =
3×2 table
Name Age
________ _____
'John' 10.8
'Mary' 15.11
'Martha' 20.22
如果我使用以下命令,将 Age 列转换为矩阵可以正常工作:
cell2mat(table2cell(T(:,2)))
但是如果我使用:
cell2mat(table2cell(T.Age))
并抛出以下错误:
>> cell2mat(table2cell(T.Age))
Undefined function 'getVars' for input
arguments of type 'double'.
Error in table2cell (line 15)
t_vars = getVars(t);
有什么方法可以在将此列转换为矩阵时使用列名T.Age而不是使用T(:,2(?
摘自 MathWorks 网站上的 Access Data in a Table 文档
括号允许您选择表中数据的子集并保留表容器。
而
点索引从一个表变量中提取数据。结果是与提取的变量数据类型相同的数组。可以在点索引后面加上括号,以指定要从变量中提取的行子集。
因此,如果您使用T.Age
访问数据,则结果应该已经是一个矩阵,即您不需要使用table2cell
或cell2mat
进行任何转换。