在Matlab中将表格列转换为矩阵

时间:2018-10-24 04:16:33

标签: matlab

我有一个表格(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)

1 个答案:

答案 0 :(得分:3)

摘自MathWorks网站上的Access Data in a Table文档

  

使用括号可以选择表中数据的子集并保留表容器。

同时

  

点索引从一个表变量中提取数据。结果是与提取变量具有相同数据类型的数组。您可以在圆点索引后面加上括号,以指定要从变量中提取的行的子集。

因此,如果您使用n=input() y=n.split() for x in y: a=([int(x)]) print(a) 访问数据,则结果应该已经是矩阵,即您无需使用python .\input_into_list.py 1 2 3 [3] T.Age进行任何转换。