c#如何实现两个二维矩阵相乘

 时间:2026-02-14 02:25:17

1、小编这里使用的是vs2010版的,下面的方法也同样适用于vs2008或者更高的版本。 第一步,打开vs2010,新建一个项目。

c#如何实现两个二维矩阵相乘

2、这里我们创建一个窗体应用程序,并添加一个textbox用于显示计算结果;当然你也可以选择控制台应用程序,根据具体情况的需要而定。

c#如何实现两个二维矩阵相乘

3、下面为程序添加实现两个矩阵相乘的的代码:

首先定义三个二维数组(二维数组存放我们的二维矩阵),假设前两个(A和B)已知,第三个(C)用于存放矩阵相乘的结果(第三个我们后面再定义)。这里我只是定义了2×2的矩阵,大家在编程时根据具体情况设置大小和数值。

            double[,] A = new double[2, 2] { { 1, 2 }, { 3, 4 } };

            double[,] B = new double[2, 2] { { 5, 6 }, { 7, 8 } };

            

c#如何实现两个二维矩阵相乘

4、然后依次点击右边的“解决方案管理器”-“WindowsFormsApplication1”(这个是项目名称,在创建程序的时候如果修改过,名称可能不一样)-“添加”-“类”,类的名称我们修改为matrix(矩阵)。

c#如何实现两个二维矩阵相乘

5、在我们创建的matrix类中添加矩阵相乘代码: 

 public static double[,] 相乘(double[,] A, double[,] B)

        {

            int m, p, n;

            m = A.GetLength(0);

            p = A.GetLength(1);

            if (p != B.GetLength(0)) return null;

            n = B.GetLength(1);

            double[,] C = new double[m, n];

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

            {

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

                {

                    double sum = 0;

                    for (int k = 0; k < p; k++)

                    {

                        sum = sum + A[i, k] * B[k, j];

                    }

                    C[i, j] = sum;

                }

            }

            return C;

        }

c#如何实现两个二维矩阵相乘

6、下面实现相乘功能,切换到我们的主程序界面,添加:          

double[,] C = matrix.相乘(A, B);

            for (int i = 0; i < C.GetLength(0); i++)

            {

                for (int j = 0; j < C.GetLength(1); j++)

                {

                    textBox1.Text += Convert.ToString(C[i, j])+"\r\n";

                }

            }

1.matrix.相乘(A, B);表示的是调用我们写matrix的类,实现两个矩阵相乘的运算; 

2.textBox1.Text += Convert.ToString(C[i, j])+"\r\n";是将C的结果显示在textBox1中。因为我们要输出C中的元素,而C是一个数组,是不能直接输出的,所以用循坏来遍历输出数组中的元素;

3."\r\n"的功能是换行;

4.C.GetLength(0)获取矩阵C的行数;

5.C.GetLength(0)获取矩阵C的列数。

c#如何实现两个二维矩阵相乘

7、点击启动,等待程序运行完成,可以看到计算结果如图。如果想要改变输出显示的方式,则需要改变换行代码。

c#如何实现两个二维矩阵相乘

c#如何实现两个二维矩阵相乘

8、之所以采用类的方式,是因为这样可以大大简化程序内容,减少工作量,而且只要在需要的时候调用就行了,大家学会使用类将会大大提高我们程序的编写速度与工作量。

c#如何实现两个二维矩阵相乘

  • 手把手教你用matlab创建特殊矩阵(2)
  • matlab怎么控制坐标/画圆形看起来像椭圆怎么办
  • MATLAB如何对图像进行彩色平衡?
  • Source Insight如何自定义新的语言
  • Matlab中size函数的用法
  • 热门搜索
    春节旅游 嵊泗列岛旅游攻略 延安旅游 普吉岛旅游 旅游路线 广州旅游景点 河南旅游景点 红色旅游景点 旅游包车 甘南旅游攻略