繁体   English   中英

需要对 MATLAB 中的表格部分进行分组和转置

[英]Need to group data and transpose portion of the table in MATLAB

我有一个数据集,其中包含不同电路卡的测试数据。 原始数据表 (T1) 由板的序列号 (SN) 和电路卡开始其测试过程的时间戳 (Start_Time) 组织。 剩下的两列是各个测试步骤的名称 (Test_Name) 和在每个测试步骤中记录的数据值 (Data)。 由于每个序列号都运行多个测试,因此 SN 和 Start_Time 中的数据会重复多次,唯一的新信息是 Test_Name 和 Data。 您可以假设每个电路卡序列号的 Test_Name 值都相同(即我们可以将它们视为分类变量)。 我想做两件事:

  1. 按 SN 和 Start_Time 组合数据,这样它们就不会在每个测试中重复
  2. append Test_Name 和 Data 中的部分转置数据,以便每个 Test_Name 成为一个新变量或列,其下方具有适当的 Data 值。 这是原始数据表(T1)的示例:
SN = [1; 1; 1; 2; 2; 2];
Start_Time = [10; 10; 10; 20; 20; 20];
Test_Name = {'test_1'; 'test_2'; 'test_3'; 'test_1'; 'test_2'; 'test_3'};
Data = [23; 15; 23; 1; 44; 77];
T1 = table(SN, Start_Time, Test_Name, Data,'VariableNames',{'SN' 'Start_Time' 'Test_Name' 'Data'});

这是原始数据表的样子:

原表

这是我希望数据处理后的样子(T2):

这就是我希望新数据表在处理后的样子

您可以使用unstack function 来实现此目的

T2 = unstack( T1, 'Data', 'Test_Name' );

这会将Data列中的值分配到由Test_Name列中的值标识的多个列中。 所有其他列都保留为 output 中的列。 使用您的示例数据,我们得到这个 output:

输出

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM