有没有办法用 multi-line 列名创建 table?

Is there a way to create a table with multi-line column names?

我正在尝试创建一个 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学生版

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

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

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 和之前的版本。