How can I multiply two matrices in C#?

后端 未结 10 1802
不思量自难忘°
不思量自难忘° 2021-01-02 03:24

Like described in the title, is there some library in the Microsoft framework which allows to multiply two matrices or do I have to write my own method to do this? // I\'ve

10条回答
  •  南方客
    南方客 (楼主)
    2021-01-02 04:02

    namespace matrix_multiplication
    {
        class Program
        {
            static void Main(string[] args)
            {
                int i, j;
                int[,] a = new int[2, 2];
                Console.WriteLine("Enter no for 2*2 matrix");
                for (i = 0; i < 2; i++)
                {
                    for (j = 0; j < 2; j++)
                    {
                        a[i, j] = int.Parse(Console.ReadLine());
                    }
                }
                Console.WriteLine("First matrix is:");
                for (i = 0; i < 2; i++)
                {
                    for (j = 0; j < 2; j++)
                    {
                      Console.Write(a[i,j]+"\t");
                    }
                    Console.WriteLine(); 
                }
    
    
                int[,] b = new int[2, 2];
                Console.WriteLine("Enter no for 2*2 matrix");
                for (i = 0; i < 2; i++)
                {
                    for (j = 0; j < 2; j++)
                    {
                        b[i, j] = int.Parse(Console.ReadLine());
                    }
                }
                Console.WriteLine("second matrix is:");
                for (i = 0; i < 2; i++)
                {
                    for (j = 0; j < 2; j++)
                    {
                        Console.Write(b[i, j] + "\t");
                    }
                    Console.WriteLine();
                }
    
                Console.WriteLine("Matrix multiplication is:");
                int[,] c = new int[2, 2];
                for (i = 0; i < 2; i++)
                {
                    for (j = 0; j < 2; j++)
                    {
    
    
                        c[i,j]=0;
                         for (int k = 0; k < 2; k++)
                         {
                             c[i, j] +=  a[i, k] * b[k, j];
                         }
                     }
                }
                for (i = 0; i < 2; i++)
                {
                    for (j = 0; j < 2; j++)
                    {
                        Console.Write(c[i, j]+"\t");
                    }
                    Console.WriteLine();
                }
    
                Console.ReadKey();
            }
        }
    }
    

    output

    Enter no for 2*2 matrix

    8
    7
    6
    0
    

    First matrix is:

    8       7
    6       0
    

    Enter no for 2*2 matrix

    4
    3
    2
    1
    

    second matrix is:

    4       3
    2       1
    

    Matrix multiplication is:

    46      31
    24      18
    

提交回复
热议问题