C#程序将两个矩阵相乘

矩阵乘法程序用于将两个矩阵相乘。仅当第一个矩阵中的列数等于第二个矩阵中的行数时,才可以执行此过程。

演示C#中矩阵乘法的程序如下所示-

示例

using System;

namespace MatrixMultiplicationDemo {

   class Example {

      static void Main(string[] args) {

         int m = 2, n = 3, p = 3, q = 3, i, j;

         int[,] a = {{1, 4, 2}, {2, 5, 1}};

         int[,] b = {{3, 4, 2}, {3, 5, 7}, {1, 2, 1}};

         Console.WriteLine("矩阵A:");

         for (i = 0; i < m; i++) {

            for (j = 0; j < n; j++) {

               Console.Write(a[i, j] + " ");

            }

            Console.WriteLine();

         }

         Console.WriteLine("矩阵b:");

         for (i = 0; i < p; i++) {

            for (j = 0; j < q; j++) {

               Console.Write(b[i, j] + " ");

            }

            Console.WriteLine();

         }

         if(n! = p) {

            Console.WriteLine("Matrix multiplication not possible");

         } else {

            int[,] c = new int[m, q];

            for (i = 0; i < m; i++) {

               for (j = 0; j < q; j++) {

                  c[i, j] = 0;

                  for (int k = 0; k < n; k++) {

                     c[i, j] += a[i, k] * b[k, j];

                  }

               }

            }

            Console.WriteLine("这两个矩阵的乘积为:");

            for (i = 0; i < m; i++) {

               for (j = 0; j < n; j++) {

                  Console.Write(c[i, j] + "\t");

               }

               Console.WriteLine();

            }

         }

      }

   }

}

输出结果

上面程序的输出如下。

矩阵A:

1 4 2

2 5 1

矩阵b:

3 4 2

3 5 7

1 2 1

这两个矩阵的乘积为:

172832

223540

现在让我们了解上面的程序。

首先,显示两个矩阵a和b。给出的代码片段如下。

for (i = 0; i < m; i++) {

   for (j = 0; j < n; j++) {

      Console.Write(a[i, j] + " ");

   }

   Console.WriteLine();

}

Console.WriteLine("矩阵b:");

for (i = 0; i < p; i++) {

   for (j = 0; j < q; j++) {

      Console.Write(b[i, j] + " ");

   }

   Console.WriteLine();

}

如果第一个矩阵中的列数不等于第二个矩阵中的行数,则矩阵不能相乘并显示出来。给出的代码片段如下。

if(n! = p) {

   Console.WriteLine("Matrix multiplication not possible");

}

否则,使用嵌套的for循环获取矩阵a和b的乘积,即矩阵c。然后显示矩阵c。为此的代码段如下所示-

for (i = 0; i < m; i++) {

   for (j = 0; j < q; j++) {

      c[i, j] = 0;

      for (int k = 0; k < n; k++) {

         c[i, j] += a[i, k] * b[k, j];

      }

   }

}

Console.WriteLine("这两个矩阵的乘积为:");

for (i = 0; i < m; i++) {

   for (j = 0; j < n; j++) {

      Console.Write(c[i, j] + "\t");

   }

   Console.WriteLine();

}

以上是 C#程序将两个矩阵相乘 的全部内容, 来源链接: utcz.com/z/360959.html

回到顶部