在MatLab中需要分组数据和转置表格的一部分

vh0rcniy  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(229)

我有一个数据集,其中包括不同电路卡的测试数据。原始数据表(T1)由电路板的序列号(SN)和电路卡开始其测试程序的时间戳(START_TIME)组织。剩下的两列是各个测试步骤的名称(TEST_NAME)和在每个测试步骤记录的数据值(DATA)。由于每个序列号都要运行多个测试,因此SN和Start_Time中的数据会重复多次,唯一的新信息是测试名称和数据。您可以假设每个电路卡序列号的Test_Name值是相同的(即,我们可以将它们视为分类变量)。我想做两件事:
1.按SN和START_TIME分组数据,这样每次测试都不会重复
1.将部分转置的数据追加到测试名称和数据中,以便每个测试名称成为一个新的变量或列,其下面带有适当的数据值。以下是原始数据表(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):

m1m5dgzv

m1m5dgzv1#

可以使用unstack函数来实现这一点

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

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

相关问题