У меня есть матрица 6 x 6, и я сохраняю ее значения в одномерном массиве размером 36. Я хочу изменить его так, чтобы строки были столбцами, а столбцы - строк. Мой метод пытается скопировать значения в другой массив, но отсортирован правильно. Я пытаюсь для цикла:Столбцы и строки коммутационной матрицы в C++
for (int i = 0; i < 6; ++i){
copyArray[i]= array[i*6];
}
Это прекрасно работает для первого нового ряда, состоящего из первого столбца, но как я по-прежнему делать все из них? Я пробовал вложенные для циклов, но не могу придумать правильный алгоритм с использованием итераторов. Я мог бы сделать это вручную, но хотел бы сделать это с помощью кода.
Я кодирую на C++, но если кто-то может сделать это на том же языке, что было бы хорошо. Я чувствую, что это математическая проблема.
Вопрос: Как я могу решить для переключения строк и столбцов? (Пример: если я обозначаю первые строки и столбцы как 0, в матрице 6x6, то обе строки и столбцы идут от 0 до 5. Поэтому, переключая строки и столбцы, значение в строке 2, столбец 5 будет переключается со значением в строке 5, столбец 2.)
Не можете ли вы сохранить матрицу как 2D-массив? –
@MuhammetAliAsan: Как это поможет? – Deduplicator
называется так называемой матричной транспозицией *. – didierc