Я должен создать кнопку, которая преобразует уже существующую матрицу 2D-матрицы в единую матрицу. Очевидно, вам нужно убедиться, что количество столбцов и строк одинаково в исходной матрице, чтобы сделать ее идентичной матрицей, но я немного запутался в том, как это сделать.Преобразование матрицы 2D-массива в единую матрицу C#
До сих пор у меня есть:
private void btnMakeBIdentity_Click(object sender, EventArgs e)
{
double[,] identityMatrixB = new double[matrixBRows, matrixBCols];
if(matrixBRows == matrixBCols)
{
identityMatrixB = IdentityMatrix(matrixBRows);
}
matrixB = identityMatrixB;
matrixToString(matrixB, txtFullMatrixB);
}
и метод matrixToString:
private double[,] IdentityMatrix(int n)
{
double[,] result = createMatrix(n, n);
for (int i = 0; i < n; ++i)
result[i,i] = 1.0;
return result;
}
В этом коде: matrixB, matrixBRows, matrixBCols все глобальные переменные класса. Матрица B была создана с помощью:
private void btnCreateMatrixB_Click(object sender, EventArgs e)
{
try
{
matrixBRows = Convert.ToInt32(txtMatrixBRows.Text);
matrixBCols = Convert.ToInt32(txtMatrixBCols.Text);
}
catch (Exception ex)
{
MessageBox.Show("Please check the textboxes for Matrix B's rows and columns. Be sure you are inputing a valid integer.");
}
matrixB = createMatrix(matrixBRows, matrixBCols);
matrixToString(matrixB, txtFullMatrixB);
}
Пример вывода, который дается после того, как Matrix B создал бы:
8.3 10 5.2
0.1 6.3 7.8
7.6 1.3 1.1
после запуска IdentityMatrix после нажатия кнопки "Сделать Матрица B Идентичность" Я получаю:
1.0 10 5.2
0.1 1.0 7.8
7.6 1.3 1.0
Любая помощь или предложения были бы замечательными. Благодаря!
Буквально как только я загрузил этот вопрос, у меня была эта идея ... Спасибо! – Shayd3