У меня есть матрица, в которой каждый элемент представляет собой единицу двумерной координаты. Таким образом, каждый элемент в любой данной строке является парным, где элементы в первом столбце связаны с элементами во втором, а элементы в третьем столбце связаны с четвертым. Все возможные комбинации из 4 чисел присутствуют в матрице.
Что мне нужно сделать, так это развернуть матрицу, удалив строки, в которых первый набор координат (например, столбцы 1 и 2 в строке) поменялся местами с второй набор координат. Например, если одна строка содержит значение «3, 4, 2, 1», то мне нужно будет удалить «2, 1, 3, 4» из другого места в матрице.
Примером этого может быть будет видно ниже, где я хотел бы удалить последнюю строку, так как она противоположна первой строке;
3 3 1 1
1 2 2 3
3 4 1 2
4 4 3 1
4 1 4 4
1 1 3 3
Я довольно озадачен тем, как это сделать и мои предыдущие попытки все провалились. Хотя это может быть бесполезно для ответа, я включил мой код, показывающий, как я строю исходную матрицу ниже:
%create list of all piece coordinates
p1_row_index=(1:n);
p1_column_index=(1:n);
p2_row_index=(1:n);
p2_column_index=(1:n);
% get all possible combinations of these variables
[p1_row_index,p1_column_index,p2_row_index,p2_column_index]=BalanceFactors(1,1,1:n,1:n,1:n,1:n);
pc_list(:,1)=p1_row_index; % piece1 coordiantes for rows
pc_list(:,2)=p1_column_index; % piece1 coordiantes for columns
pc_list(:,3)=p2_row_index; % piece2 coordiantes for rows
pc_list(:,4)=p2_column_index; % piece2 coordiantes for columns
Спасибо за ваше время.
Большое спасибо,
Мэтт