Сохранение строк, соответствующих идентичным элементам в столбцах, вместе в 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 ];

Есть ли способ сделать это вместо использования циклов и условий? Любая помощь будет оценена по достоинству.

Каков желаемый результат для примера a? sortrows(a) то, что вам нужно?

Luis Mendo 18.10.2018 10:44
Структурированный массив Numpy
Структурированный массив Numpy
Однако в реальных проектах я чаще всего имею дело со списками, состоящими из нескольких типов данных. Как мы можем использовать массивы numpy, чтобы...
T - 1Bits: Генерация последовательного массива
T - 1Bits: Генерация последовательного массива
По мере того, как мы пишем все больше кода, мы привыкаем к определенным способам действий. То тут, то там мы находим код, который заставляет нас...
Что такое деструктуризация массива в JavaScript?
Что такое деструктуризация массива в JavaScript?
Деструктуризация позволяет распаковывать значения из массивов и добавлять их в отдельные переменные.
0
1
39
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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,:);

Другие вопросы по теме