在C#中,写一个函数,实现矩阵的转置,通过二维数组表示矩阵,采用嵌套循环访问二维数组,矩阵转置的实质是交换行列号,创建数组名为GetLength(0))
时间: 2024-11-30 22:29:51 浏览: 37
C#实现矩阵转置的方法
在C#中,你可以创建一个静态方法来实现矩阵的转置。这里是一个简单的示例,它接受一个二维整数数组作为输入,然后返回转置后的数组:
```csharp
using System;
public class MatrixTranspose
{
// 定义一个静态方法transposeMatrix,接收二维数组并返回转置后的数组
public static int[,] TransposeMatrix(int[,] matrix)
{
int rowCount = matrix.GetLength(0); // 获取行数
int colCount = matrix.GetLength(1); // 获取列数
// 创建一个新的二维数组用于存储转置后的结果,大小为列数乘以行数
int[,] transposedMatrix = new int[colCount, rowCount];
// 使用嵌套循环交换矩阵的行和列元素
for (int i = 0; i < rowCount; i++)
{
for (int j = 0; j < colCount; j++)
{
transposedMatrix[j, i] = matrix[i, j]; // 交换位置
}
}
return transposedMatrix;
}
public static void Main(string[] args)
{
// 示例使用
int[,] exampleMatrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
int[,] transposed = TransposeMatrix(exampleMatrix);
Console.WriteLine("Original Matrix:");
PrintMatrix(exampleMatrix);
Console.WriteLine("\nTransposed Matrix:");
PrintMatrix(transposed);
// 辅助打印矩阵的函数
private static void PrintMatrix(int[,] matrix)
{
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
}
}
}
```
在这个例子中,`TransposeMatrix`函数首先获取原始矩阵的行数和列数,然后创建一个新的矩阵,并通过两个嵌套循环交换每个元素的位置。最后,`Main`函数展示了如何使用这个函数并打印出转置前后的矩阵。
阅读全文