У меня в Matlab есть матрица следующей формы:
3 4
4 3
5 6
6 5

Я хотел бы, чтобы строки 1 и 2 считались дубликатами, где элементы двух строк совпадают, но не в одинаковом порядке. Аналогично строки 3 и 4 следует считать одинаковыми. Итак, учитывая приведенную выше матрицу, я хотел бы получить в результате следующее:
3 4
5 6

Я пробовал эту уникальную функцию, но она мне не поможет. Моя фактическая матрица довольно велика, и я не хочу решать проблему исчерпывающим попарным поиском, поскольку это занимает очень много времени.
Есть ли элегантный способ достижения моей цели?

2
programmingIsFun 23 Янв 2014 в 04:03

1 ответ

Лучший ответ

Это один из способов сделать это:

X = [3 4
4 3
5 6
6 5];


X = sort(X, 2);
UniqueRows = unique(X, 'rows');

UniqueRows =

     3     4
     5     6
4
Marcin 23 Янв 2014 в 04:12