【问题标题】:Unstacking multiple columns in Matlab在 Matlab 中取消堆叠多个列
【发布时间】:2019-12-30 21:43:45
【问题描述】:

如何在 matlab 中取消堆叠数据?表的unstack 只允许我为一列执行此操作,并且似乎无法执行 Python 中可用的多索引解决方案。

我希望将其转换为:

进入这个:

在 Matlab 中。

这是生成初始表T的代码:

Col1 = [1,2,4,1,3,1,2,3,4].';
Col2 = {'A','A','A','B','B','C','C','C','C'}.';
Col3 = [0.48,0.78,0.58,0.01,0.53,0.26,0.93,0.69,0.45].';
Col4 = [0.95,0.29,0.90,0.72,0.07,0.23,0.81,0.22,0.88].';

T = table( Col1, Col2, Col3, Col4 );

【问题讨论】:

    标签: matlab pivot-table matlab-table


    【解决方案1】:

    您可以使用unstack 函数通过为第二个输入指定多个变量来做到这一点

    Col1 = [1,2,4,1,3,1,2,3,4].';
    Col2 = {'A','A','A','B','B','C','C','C','C'}.';
    Col3 = [0.48,0.78,0.58,0.01,0.53,0.26,0.93,0.69,0.45].';
    Col4 = [0.95,0.29,0.90,0.72,0.07,0.23,0.81,0.22,0.88].';
    
    T = table( Col1, Col2, Col3, Col4 );
    
    tUnstack = unstack( T, {'Col3','Col4'}, 'Col2'  );
    

    输出:

    请注意,在 MATLAB 中,一个表中不能有多个标题行。 unstack 函数连接多个类别的标题名称(如上所示),如果您希望指定它们,也可以采用额外的 'NewDataVariableNames' 参数。

    如果您需要多个标题行,则必须解析标题并将新数据存储在元胞数组中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-08
      • 2023-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 2023-01-11
      相关资源
      最近更新 更多