arrays - 在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 循环和条件?任何帮助将不胜感激。
解决方案
您想将所有“第一列元素”组合在一起吗?例如:
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,:);