Я пытаюсь преобразовать матрицу int [,]. Но я не получаю правильный вывод. Я сделал транспозицию с двумя циклами, но я думаю, что я сделал ошибку. Я просто не могу указать на это.Транспонирование матрицы не работает
Вот мой код:
int[,] matrix = new int[2,2];
matrix[0, 0] = 1;
matrix[0, 1] = 2;
matrix[1, 0] = 3;
matrix[1, 1] = 4;
public void transponieren()
{
int[,] temp = this.matrix;
for (int i = 0; i < this.matrix.GetLength(0); i++)
{
for (int j = 0; j < this.matrix.GetLength(1); j++)
{
this.matrix[i, j] = temp[j, i];
}
}
transponiert = true;
}
С входом
[1, 2]
[3, 4]
я получаю выход
[ 1, 3]
[3, 4]
У меня уже есть другое решение, которое работает, но я хочу знать, что я сделал не так, поскольку я только скопировал рабочее решение из другого места.
ваши значения настроек 'this.matrix' во время транспонирования, создайте копию – Sayse
Что вы имеете в виду? temp [,] уже является копией матрицы, которая является атрибутом класса, содержащего метод транспонирования. – LeonidasFett
см. Мой ответ, я не тестировал его, хотя – Sayse