Перемножить две матрицы - C#
Формулировка задачи:
надо эти две матрицы перемножить, так и не дойдёт как это сделать.
int r = Convert.ToInt16(Console.ReadLine());
int[,] Matrix = new int[r, r];
Random random = new Random();
int rand;
for (int i = 0; i < r; i++)
{
for (int j = 0; j < r; j++)
{
rand = random.Next(0, 100);
Matrix[i, j] = rand;
}
}
for (int i = 0; i < r; i++)
{
for (int j = 0; j < r; j++)
{
Console.Write(Matrix[i, j] + "\t");
}
Console.WriteLine();
}
Console.WriteLine(" ");
//dddddddddddddddddddddddddddddddddddddddddddddddddddd
for (int z = 0; z < r; z++)
{
for (int x = 0; x < r; x++)
{
rand = random.Next(0, 100);
Matrix[z, x] = rand;
}
}
for (int z = 0; z < r; z++)
{
for (int x = 0; x < r; x++)
{
Console.Write(Matrix[z, x] + "\t");
}
Console.WriteLine();
}
Console.ReadKey();Решение задачи: «Перемножить две матрицы»
textual
Листинг программы
private static double[,] Multiply(double[,] m1, double[,] m2)
{
if (m1.GetLength(0) != m2.GetLength(1))
{
throw new ArgumentException("Матрицы нельзя перемножить.");
}
var result = new double[m1.GetLength(0), m2.GetLength(1)];
for (int i = 0; i < result.GetLength(0); i++)
for (int j = 0; j < result.GetLength(1); j++)
for (int n = 0; n < m1.GetLength(1); n++)
result[i, j] += m1[i, n] * m2[n, j];
return result;
}