zoukankan      html  css  js  c++  java
  • Matlab高级教程_第二篇:MATLAB和C#一些常用的矩阵运算方法的转换

    1.相关方法已经生产引用,直接调用的结果如下:

    2. 相关调用代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    using MathWorks.MATLAB.NET.Arrays;
    using MathWorks.MATLAB.NET.Utility;
    
    using MatrixCalc;
    
    namespace 矩阵运算转换测试
    {
        class Program
        {
            static void Main(string[] args)
            {
                //生成一个double类型的矩阵,用内置的MATLAB父类MWArray方法
                //第一个矩阵
                Console.WriteLine("第一个矩阵");//2行2列
                MWArray matrix1 = (MWNumericArray)new double[2, 2] { { 10.5, 25.6 }, { 55.4, 66.8 } };
                Console.WriteLine(matrix1);
                //第二个矩阵
                Console.WriteLine("第二个矩阵");//2行2列
                MWArray matrix2 = (MWNumericArray)new double[2, 2] { { 70.5, 28.6 }, { 35.3, 63.9 } };
                Console.WriteLine(matrix2);
                //第三个矩阵
                Console.WriteLine("第三个矩阵");//3行3列
                MWArray matrix3 = (MWNumericArray)new double[3, 3] { { 70.5, 28.6,77.88 }, { 35.3, 63.9,55.66 },{22.58,66.98,44.77 } };
                Console.WriteLine(matrix3);
                //第四个向量
                Console.WriteLine("第三个向量");//3行3列
                MWArray array = (MWNumericArray)new double[1, 3] { { 70.5, 28.6, 77.88 }};
                Console.WriteLine(array);
                Console.WriteLine("
    ");
    
                //进行矩阵的加法运算
                Console.WriteLine("第一个矩阵和第二个矩阵的加法运算结果是:");
                MatrixCalc.MatrixCalc Add = new MatrixCalc.MatrixCalc(); //实例化
                var AddResult = Add.AddMatrixs(matrix1,matrix2);//调用加法方法
                //var AddResult = Add.AddMatrixs(matrix1, matrix3);//调用加法方法//此处报错,因为两个矩阵的维度不一样
                Console.WriteLine(AddResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的加法运算
                Console.WriteLine("第一个矩阵和第二个矩阵的减法运算结果是:");
                MatrixCalc.MatrixCalc Sub = new MatrixCalc.MatrixCalc(); //实例化
                var SubResult = Sub.SubMatrixs(matrix1, matrix2);//调用加法方法(上面一样注意矩阵维度要一致)
                Console.WriteLine(SubResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的乘法运算
                MatrixCalc.MatrixCalc Mul = new MatrixCalc.MatrixCalc(); //实例化
                var MulResult1 = Mul.MulMatrixs(matrix1, matrix2);//调用加法方法
                //var MulResult2 = Mul.MulMatrixs(matrix1, matrix3);//调用加法方法
                Console.WriteLine("第一个矩阵和第二个矩阵的乘法运算结果是:");
                Console.WriteLine(MulResult1);
                //Console.WriteLine("第一个矩阵和第三个矩阵的乘法运算结果是:");//错误维度不一样
                //Console.WriteLine(MulResult2);
                Console.WriteLine("第四个向量和第三个矩阵的乘法运算结果是:");
                var MulResult3 = Mul.MulMatrixs(array, matrix3);//调用加法方法
                Console.WriteLine(MulResult3);
                Console.WriteLine("
    ");
    
                //进行矩阵的乘法运算(点乘运算)
                Console.WriteLine("第一个矩阵和第二个矩阵的点乘法运算结果是:");
                MatrixCalc.MatrixCalc DotMul = new MatrixCalc.MatrixCalc(); //实例化
                var DotMulResult = DotMul.DotMulMatrixs(matrix1, matrix2);//调用加法方法(注意矩阵维度)
                Console.WriteLine(DotMulResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的除法运算(正向除法)
                Console.WriteLine("第一个矩阵和第二个矩阵的除法运算结果是:");
                MatrixCalc.MatrixCalc Div = new MatrixCalc.MatrixCalc(); //实例化
                var DivResult = Div.DivMatrixs(matrix1, matrix2);//调用加法方法(注意矩阵维度)
                Console.WriteLine(DivResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的点除法运算(正向点除法)
                Console.WriteLine("第一个矩阵和第二个矩阵的点除法运算结果是:");
                MatrixCalc.MatrixCalc DotDiv = new MatrixCalc.MatrixCalc(); //实例化
                var DotDivResult = DotDiv.DotDivMatrixs(matrix1, matrix2);//调用加法方法(注意矩阵维度)
                Console.WriteLine(DotDivResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的平方法运算(第二个值是平方值,不是两个矩阵的平方运算)
                Console.WriteLine("第一个矩阵的平方法运算结果是:");
                MatrixCalc.MatrixCalc Square = new MatrixCalc.MatrixCalc(); //实例化
                var SquareResult = Square.SquareMatrixs(matrix1, 2);//调用加法方法
                Console.WriteLine(SquareResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的逆矩阵运算
                Console.WriteLine("第一个矩阵逆矩阵运算结果是:");
                MatrixCalc.MatrixCalc Inv = new MatrixCalc.MatrixCalc(); //实例化
                var InvResult = Inv.InvMatrix(matrix1);//调用加法方法(注意矩阵维度)
                Console.WriteLine(InvResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的转置运算
                Console.WriteLine("第一个矩阵转置矩阵运算结果是:");
                MatrixCalc.MatrixCalc Trans = new MatrixCalc.MatrixCalc(); //实例化
                var TransResult = Trans.TransMatrix(matrix1);//调用加法方法(注意矩阵维度)
                Console.WriteLine(TransResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的行列式运算
                Console.WriteLine("第一个矩阵行列式运算结果是:");
                MatrixCalc.MatrixCalc Det= new MatrixCalc.MatrixCalc(); //实例化
                var DetResult = Det.DetMatrix(matrix1);//调用加法方法
                Console.WriteLine(DetResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的秩运算
                Console.WriteLine("第一个矩阵秩运算结果是:");
                MatrixCalc.MatrixCalc Rank = new MatrixCalc.MatrixCalc(); //实例化
                var RankResult = Rank.RankMatrix(matrix1);//调用加法方法
                Console.WriteLine(RankResult);
                Console.WriteLine("
    ");
    
                //进行矩阵的特征值运算
                Console.WriteLine("第一个矩阵特征值运算结果是:");
                MatrixCalc.MatrixCalc Eig = new MatrixCalc.MatrixCalc(); //实例化
                var EigResult = Eig.EigMatrix(matrix1);//调用加法方法
                Console.WriteLine(EigResult);
                Console.WriteLine("
    ");
    
            }
    
    
        }
    }
    

    3. 和MATLAB运行结果一致  

  • 相关阅读:
    usb3.0 bMaxBurst最大支持多少个 这个描述符什么时候被读取
    盒式图|加置信椭圆的散点图|分组盒式图|分组散点图|马赛克图|
    协方差分析|随机区组设计|样本单位|样本容量|变异系数|片面误差|抽样误差|真实性|精密度|重复性|精确程度|计数数据|区间变量|离散型变量|数值变量
    试验指标|试验单位|均方|随机模型|固定模型|字母标记法|LSR|q检验|LSD|重复值|弥补缺失数据|可加性|平方根转换|对数转换|反正弦转化
    2×c列联表|多组比例简式|卡方检验|χ2检验与连续型资料假设检验
    显著水平|区间估计|假设检验|显著性|第一类错误|Ⅱ类错误|β错误|t检验|连续性矫正|二项分布的假设检验|样本百分率|
    估计量|估计值|矩估计|最大似然估计|无偏性|无偏化|有效性|置信区间|枢轴量|似然函数|伯努利大数定理|t分布|单侧置信区间|抽样函数|
    单因素方差分析
    左偏|有偏|中心极限定理|卡方分布|
    正交试验
  • 原文地址:https://www.cnblogs.com/noah0532/p/9843848.html
Copyright © 2011-2022 走看看