c#矩阵乘法
时间: 2023-06-30 15:03:08 浏览: 114
在C#中实现矩阵乘法,可以使用以下代码:
```csharp
public static double[,] MatrixMultiplication(double[,] matrix1, double[,] matrix2)
{
int rowsA = matrix1.GetLength(0);
int colsA = matrix1.GetLength(1);
int rowsB = matrix2.GetLength(0);
int colsB = matrix2.GetLength(1);
if (colsA != rowsB)
{
throw new ArgumentException("Invalid dimensions: matrix1 cols must match matrix2 rows.");
}
double[,] result = new double[rowsA, colsB];
for (int i = 0; i < rowsA; i++)
{
for (int j = 0; j < colsB; j++)
{
double sum = 0;
for (int k = 0; k < colsA; k++)
{
sum += matrix1[i, k] * matrix2[k, j];
}
result[i, j] = sum;
}
}
return result;
}
```
在这个代码中,我们首先获取矩阵的行和列的数量,然后检查它们是否可以相乘。如果它们不能相乘,则抛出一个异常。接下来,我们创建一个新的矩阵来存储结果,并使用三个嵌套循环来计算每个元素的值。最后,我们返回结果矩阵。
你可以使用以下代码来调用这个方法:
```csharp
double[,] matrix1 = { { 1, 2 }, { 3, 4 } };
double[,] matrix2 = { { 5, 6 }, { 7, 8 } };
double[,] result = MatrixMultiplication(matrix1, matrix2);
// 输出结果
for (int i = 0; i < result.GetLength(0); i++)
{
for (int j = 0; j < result.GetLength(1); j++)
{
Console.Write(result[i, j] + " ");
}
Console.WriteLine();
}
```
这将输出以下内容:
```
19 22
43 50
```
这是两个矩阵的乘积。
阅读全文