有没有一种方法可以创建带有多行列名的表?

时间:2019-11-27 23:46:52

标签: matlab matlab-table

我正在尝试创建具有以下格式的多行标题列的表

|Col1 Co2 Col3|

|Col1 Co2 Col3|

使用示例并添加|在第一行和第二行之间,但不起作用

T = table(categorical({'M';'F';'M'}),[45;32;34],...

      {'NY';'CA';'MA'},logical([1;0;0]),..

      'VariableNames',{'Gender|Gender2','Age|Age2','State|State2','Vote|Vote2'})

我正在使用R2018b学生版

2 个答案:

答案 0 :(得分:1)

release R2019b of MATLAB中增加了在table中具有任意变量名称的功能。使用该版本,您的代码可以按预期工作并产生:

T =
  3×4 table
    Gender|Gender2    Age|Age2    State|State2    Vote|Vote2
    ______________    ________    ____________    __________
          M              45          {'NY'}         true    
          F              32          {'CA'}         false   
          M              34          {'MA'}         false   

但是,在您的问题中,您声明需要多行变量。您可以在R2019b中创建这些字符,但是显示会将换行符折叠为,如下所示:

>> T = table(1, 'VariableNames', {['a', newline, 'b']})
T =
  table
    a↵b
    ___
     1 

如果只是您要显示的内容,则可以考虑制作嵌套表,如下所示:

t1 = table(1);
t2 = table(2);
T = table(t1, t2)

结果为:

T =
  1×2 table
     t1      t2 
    Var1    Var1
    ____    ____
     1       2  

请注意,最终方法适用于R2019a和早期版本。

答案 1 :(得分:0)

没有办法。表的有效变量名类似于Matlab中的其他变量。它们不能包含\ n(换行符)或任何非字母和数字的内容。下划线是例外。