使用C#写一个多维矩阵换算示例
时间: 2024-04-01 22:04:08 浏览: 143
当然可以!以下是一个使用C#编写的多维矩阵换算示例:
```csharp
using System;
class MatrixConverter
{
static void Main()
{
// 定义一个2维矩阵
int[,] matrix2D = { { 1, 2, 3 }, { 4, 5, 6 } };
Console.WriteLine("2维矩阵:");
PrintMatrix(matrix2D);
// 将2维矩阵转换为1维数组
int[] array1D = ConvertTo1D(matrix2D);
Console.WriteLine("\n转换为1维数组:");
PrintArray(array1D);
// 将1维数组转换为2维矩阵
int[,] convertedMatrix2D = ConvertTo2D(array1D, matrix2D.GetLength(0), matrix2D.GetLength(1));
Console.WriteLine("\n从1维数组转换回2维矩阵:");
PrintMatrix(convertedMatrix2D);
}
// 将2维矩阵转换为1维数组
static int[] ConvertTo1D(int[,] matrix)
{
int rows = matrix.GetLength(0);
int cols = matrix.GetLength(1);
int[] array = new int[rows * cols];
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
array[i * cols + j] = matrix[i, j];
}
}
return array;
}
// 将1维数组转换为2维矩阵
static int[,] ConvertTo2D(int[] array, int rows, int cols)
{
int[,] matrix = new int[rows, cols];
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
matrix[i, j] = array[i * cols + j];
}
}
return matrix;
}
// 打印2维矩阵
static void PrintMatrix(int[,] matrix)
{
int rows = matrix.GetLength(0);
int cols = matrix.GetLength(1);
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
Console.Write(matrix[i, j] + " ");
}
Console.WriteLine();
}
}
// 打印1维数组
static void PrintArray(int[] array)
{
for (int i = 0; i < array.Length; i++)
{
Console.Write(array[i] + " ");
}
}
}
```
这个示例展示了如何将一个二维矩阵转换为一维数组,以及如何将一维数组转换回二维矩阵。你可以根据自己的需求进行修改和扩展。希望对你有所帮助!
阅读全文