调用C# MathNet.Numerics进行矩阵运算
By
jerryxjr1220
at 2022-07-07 • 0人收藏 • 758人看过
原来自己写过一个3x3矩阵的运算程序,但是仅限于3阶矩阵,要是其他矩阵就不行了。
C# 的MathNet.Numerics是一个非常强大的数学运算库,可以进行各种计算,矩阵计算只是其中很小一部分功能。
import dotNet; dll = dotNet.loadFile("\res\MathNet.Numerics.dll"); MathNet = dll.import("MathNet.Numerics.LinearAlgebra.Double"); //创建矩阵 matrix1 = MathNet.DenseMatrix.Create(3, 3, 0.0); matrix2 = MathNet.DenseMatrix.Create(3, 3, 0.0); //设置矩阵 matrix1.SetRow(0, { 1.0, 2.0, 3.0 } ); matrix1.SetRow(1, { 4.0, 5.0, 6.0 } ); matrix1.SetRow(2, { 7.0, 8.0, 9.0 } ); matrix2.SetRow(0, { 3.0, 2.0, 1.0 } ); matrix2.SetRow(1, { 6.0, 5.0, 4.0 } ); matrix2.SetRow(2, { 9.0, 8.0, 7.0 } ); //转置 t = matrix2.Transpose(); //加减 matrix3 = matrix1.Add(matrix2.Multiply(-1)); //乘除 matrix3 = matrix1.Multiply(t); //按行读取,在MathNet.Numerics中的矩阵下标都是从0开始 row0 = matrix3.Row(0).AsArray(); //按列读取,在MathNet.Numerics中的矩阵下标都是从0开始 col1 = matrix3.Column(1).AsArray();
3 个回复 | 最后更新于 2022-07-08
登录后方可回帖
对比了一下,发现好像还是调用python的numpy库更方便,aardio已经封装了numpy库