在matlab中将对应于列中相同元素的行保持在一起

时间:2018-10-18 08:29:06

标签: arrays matlab sorting

我有一个如下所示的矩阵。第一列包含对象的标识,第二列和第三列对应于那里的检测时间。我要做的是将所有与第一列中的相同元素相对应的元素保持在一起。

例如:

a = [51, 1.5, 3.8; 
     52, 1.8, 9.6; 
     53, 2.1, 8.8; 
     51, 3.5, 9.9; 
     54, 8.5, 10.23;
     51, 1.5, 3.8 ];

有没有一种方法而不是使用for循环和条件?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

是否要将所有“第一列元素”分组在一起?例如:

    a = [51, 1.5, 3.8;
         51, 3.5, 9.9; 
         51, 1.5, 3.8;
         52, 1.8, 9.6; 
         53, 2.1, 8.8; 
         54, 8.5, 10.23];

您可以根据第一列对矩阵进行排序:

[~, a_sorted_idx] = sort(a(:,1));
a_sorted = a(a_sorted_idx,:);