C#专业矩阵运算库——Math.Net
⼀、基础知识
1、 Math是什么
Math计算库是专为.NET开发的开源科学计算库。包含了⼤部分矩阵运算、线性运算等功能。效率⾼,且可以在C#中直接使⽤。简单的矩阵运算,其效率可以达到C#代码的10倍以上。
Math.NET Numerics是核⼼功能是数值计算。主要是提供⽇常科学⼯程计算相关的算法,包括⼀些特殊函数,线性代数,概率论,随机函数,微积分,插值,最优化等相关计算功能。它是在 Math.NET Iridium和dnAnalytics 的基础上合并⽽来。该组件⾥⾯包括了⼀个读取Matlab数据格式的功能。
2、科学计算库 Math.NET Numerics库的安装⽅法
⽅法⼆:先下载后安装
(1)在以下地址下载Math.NET Numerics库包
(2)S2012添加Math.NET Numerics库包
⽅法三:添加dll⽂件的⽅式
前两种⽅法,我都没有实验成功,到了⼀种⽐较简单的⽅法
(1)下载⼀个MathNet.Numerics.dll⽂件
(2)将dll⽂件拷到⼯程的bin debug⽂件或release⽂件下,添加引⽤即可使⽤
3、类的⽤法
⼆、简单应⽤
1、⾸先添加引⽤名称空间
using MathNet.Numerics.LinearAlgebra.Double;
using MathNet.Numerics.LinearAlgebra.Generic;
2、矩阵
(1)矩阵的定义
注意:var来⾃名称空间System,只能定义在局部变量,不能定义在全局变量
//矩阵的定义和初始化
var matrix1 = new DenseMatrix(3);//3维⽅阵
var matrix2 = new DenseMatrix(2,2);  //2维⽅阵
var matrix3 = new DenseMatrix(2, 3); //2×3矩阵
var matrix4 = new DenseMatrix(3, 2); //3×2矩阵
identity matrix是什么意思var matrix5= new DenseMatrix(2, 3, 3.0); //2×3矩阵,所有值为3.0
var matrixI = DenseMatrix.Identity(5); //5维单位矩阵
//利⽤C#中的double[,]直接创建,2×3矩阵
double[,] d_matrix = new double[2, 3];
var matrix6 = new DenseMatrix(d_matrix);
(2)矩阵的操作
var submatrix = matrix2.SubMatrix(2, 2, 3, 3); //取从第⼆⾏开始的2⾏,第三列开始的三列 ⼦矩阵var row = matrix2.Row(5, 3, 4); //取从第5⾏第3列开始的4个⾏元素
var column = matrix2.Column(2, 6, 3); //取从第2列第6⾏开始的3个列元素
var columndata = matrix2.ColumnEnumerator(2, 4); //取从第2列开始的4列
var rowdata = matrix2.RowEnumerator(4, 3);//取从第4⾏开始的3⾏
var data1 = matrix2.ToRowWiseArray();//矩阵变为⾏向量
var data2 = matrix2.ToColumnWiseArray();//矩阵变为列向量
var data3 = matrix2.Diagonal()//取矩阵的对⾓线元素向量

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。