首页 > 解决方案 > 在matlab中将与列中相同元素相对应的行保持在一起

问题描述

我有一个矩阵,如下所示。第一列包含对象的身份,第二列和第三列对应于检测时间。我想要做的是保持所有元素对应于第一列中的相同元素。

例如:

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 循环和条件?任何帮助将不胜感激。

标签: arraysmatlabsorting

解决方案


您想将所有“第一列元素”组合在一起吗?例如:

    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,:);

推荐阅读