• C# 矩阵运算


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 矩阵运算
    {
        class Program
        {
            static void Main(string[] args)
            {
                double[][] a = 
                {
                    new double[]{1.0,2.0,3.0},
                    new double[]{4.0,5.0,6.0},
                    new double[]{7.0,8.0,9.0}
                };
    
                double[][] b = 
                {
                    new double[]{2.0,-2.0,1.0},
                    new double[]{1.0,3.0,9.0},
                    new double[]{17.0,-3.0,7.0}
                };
    
                double[][] c =
                {
                    new double[3],
                    new double[3],
                    new double[3]
                };
    
                Console.WriteLine("相乘结果:");
                MatrixMul(a, b, c);
                MatrixLog(c);
                Console.WriteLine("相加结果:");
                MatrixPlus(a, b, c);
                MatrixLog(c);
                Console.WriteLine("相减结果:");
                MatrixSub(a, b, c);
                MatrixLog(c);
                Console.ReadLine();
            }
    
    
    
            //矩阵相加
            public static void MatrixPlus(double[][] a, double[][] b, double[][] c) 
            {
                if (a == null || b == null || (a.Length != b.Length) || (a[0].Length != b[0].Length))
                    return;
    
                for (int i = 0; i < a.Length; i++)
                {
                    for (int k = 0; k < a[0].Length; k++) 
                    {
                        c[i][k] = a[i][k] + b[i][k];
                    }
                }
            }
    
            //矩阵相减
            public static void MatrixSub(double[][] a, double[][] b, double[][] c)
            {
                if (a == null || b == null || (a.Length != b.Length) || (a[0].Length != b[0].Length))
                    return;
    
                for (int i = 0; i < a.Length; i++)
                {
                    for (int k = 0; k < a[0].Length; k++)
                    {
                        c[i][k] = a[i][k] - b[i][k];
                    }
                }
            }
    
            //矩阵乘法
            public static void MatrixMul(double[][] a, double[][] b,double[][] c) 
            {
                if (a == null || b == null || a[0].Length != b.Length)
                    return;
    
                for (int i = 0; i < a.Length; i++)
                {
                    for (int k = 0; k < b[0].Length; k++)
                    {
                        c[i][k] = 0;
                        for (int l = 0; l < a[0].Length; l++)
                        {
                            c[i][k] += (a[i][l] * b[l][k]);             //a矩阵i行所有元素 *  b矩阵j行所有元素之和 = 新的矩阵一个元素
                        }
                    }   
                }
            }
    
    
            public static void MatrixLog(double[][] c) 
            {
                for (int i = 0; i < c.Length; i++)
                {
                    for (int k = 0; k < c[i].Length; k++)
                    {
                        Console.Write(c[i][k] + " ");
                    }
    
                    Console.WriteLine();
                }
            }
    
        }
    }

    image

  • 相关阅读:
    python自动化测试框架的unittest与pytest前后置条件的区别
    XPTH定位总结
    自动化用例设计原则
    python 自动化测试框架unittest与pytest的区别
    Appium工作原理
    Fiddler抓包过滤
    monkey介绍及常用命令
    怎样安装python的 模块、 包、 库方法总结
    安装uiautomator2 + python 自动化环境
    APP自动化,怎样让应用不重置?
  • 原文地址:https://www.cnblogs.com/plateFace/p/5198042.html
Copyright © 2020-2023  润新知