欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用MathNet生成矩陣并打印矩陣元素

 更新時(shí)間:2023年12月03日 16:39:37   作者:微小冷  
MathNet.Numerics中提供了線性代數(shù)、微積分、特殊函數(shù)、概率論、隨機(jī)函數(shù)、插值、最優(yōu)化等一系列功能,是.net技術(shù)中首選的數(shù)值計(jì)算包,本文給大家介紹了C#如何使用MathNet生成矩陣并打印矩陣元素,文中通過(guò)代碼示例講解的非常詳細(xì),需要的朋友可以參考下

安裝

MathNet.Numerics中提供了線性代數(shù)、微積分、特殊函數(shù)、概率論、隨機(jī)函數(shù)、插值、最優(yōu)化等一系列功能,是.net技術(shù)中首選的數(shù)值計(jì)算包。

其中,線性代數(shù)包LinearAlgebra包提供了向量、矩陣等數(shù)據(jù)結(jié)構(gòu),這些是數(shù)值計(jì)算的前提,故而相比于其他包更加基礎(chǔ)。

下面用VS新建一個(gè)控制臺(tái)項(xiàng)目,并啟用頂級(jí)語(yǔ)句。點(diǎn)擊工具->NuGet包管理器->管理解決方案的NuGet程序包,進(jìn)入瀏覽選項(xiàng)卡,搜索MathNet.Numerics,選中安裝。

創(chuàng)建和顯示矩陣

在使用命名空間之后,可通過(guò)Matrix.Build來(lái)創(chuàng)建矩陣,矩陣中重寫了ToString方法,所以可直接使用$字符串,示例如下

using MathNet.Numerics.LinearAlgebra;

Matrix<double> m = Matrix<double>.Build.Random(3,4);
Console.WriteLine($"{m}");

/* 輸出結(jié)果如下
DenseMatrix 3x4-Double
 -1.34532   0.209099   1.64422   0.13664
  1.15024  -0.751815  0.242772  -1.90048
0.0985362   -1.02023  0.727527  0.137225
*/

即創(chuàng)建的矩陣為

Matrix.Build是MatrixBuilder對(duì)象,后文簡(jiǎn)稱MB,用于生成矩陣,如果需要頻繁創(chuàng)建矩陣,則可創(chuàng)建一個(gè)矩陣生成器,示例如下

var MB = Matrix<double>.Build;
m = MB.Random(3, 4);

MB.Dense(3, 4);          //3x4的全0矩陣
MB.Dense(3, 4, 1.0);     //3x4的全1.0矩陣
MB.Dense(3, 4, (i, j) => 100 * i + j);   //通過(guò)表達(dá)式生成元素
MB.DenseDiagonal(3, 4, 2.0); //3x4對(duì)角為2.0
MB.DenseIdentity(3);     // 3x3的單位陣

矩陣類型

MB支持超多種矩陣的生成方式,其中Dense又是最常用的一種,從上面的示例可知,MB提供了多種Dense重載,但前兩個(gè)輸入?yún)?shù)一般為行數(shù)和列數(shù),第三個(gè)參數(shù)則可以是

  • 缺省,則所有元素為0
  • 數(shù)值,則所有元素都是這個(gè)數(shù)
  • 函數(shù),諸如(i, j) => f(i,j),表示( i , j ) (i,j)(i,j)處的元素,其值為f ( i , j ) f(i,j)f(i,j)
  • 數(shù)組,將使用數(shù)組中的值進(jìn)行填充

DenseDiagonal用于生成對(duì)角矩陣,包括三種重載,

  • 階數(shù),對(duì)角數(shù)值
  • 行數(shù),列數(shù),對(duì)角數(shù)值
  • 行數(shù),列數(shù),對(duì)角的生成函數(shù)

這兩種生成方法,囊括了矩陣生成的一些基本邏輯,從矩陣的形狀來(lái)說(shuō),主要有兩種形式,即指定行列數(shù)或者指定階數(shù);而就矩陣的內(nèi)容而言,則有三種方法,一是用某個(gè)值來(lái)填充,二是用某個(gè)數(shù)組中的值來(lái)填充,三則是通過(guò)函數(shù)來(lái)生成。

在建立起這種邏輯之后,對(duì)于其他矩陣生成方法,也可以逐步嘗試

方法說(shuō)明
DenseIdentity單位陣
Diagonal對(duì)角方陣
DiagonalIdentity對(duì)角單位陣
Random隨機(jī)矩陣
RandomPositiveDefinite每個(gè)元素是兩個(gè)隨機(jī)數(shù)的積

其中,隨機(jī)矩陣Random可以指定隨機(jī)數(shù)種子或者具體的分布,如果未指定分布,則默認(rèn)是標(biāo)準(zhǔn)正態(tài)分布。

到此這篇關(guān)于C#使用MathNet生成矩陣并打印矩陣元素的文章就介紹到這了,更多相關(guān)C# MathNet生成并打印矩陣內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#實(shí)現(xiàn)Word轉(zhuǎn)換RTF的示例代碼

    C#實(shí)現(xiàn)Word轉(zhuǎn)換RTF的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)Word轉(zhuǎn)換RTF,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-12-12
  • C# 獲取系統(tǒng)字體的示例代碼

    C# 獲取系統(tǒng)字體的示例代碼

    這篇文章主要介紹了C# 獲取系統(tǒng)字體的方法,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法

    C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法

    這篇文章主要介紹了C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的方法,通過(guò)對(duì)窗體參數(shù)的簡(jiǎn)單設(shè)置實(shí)現(xiàn)C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的功能,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下
    2015-08-08
  • C#接口歸納總結(jié)實(shí)例詳解

    C#接口歸納總結(jié)實(shí)例詳解

    本篇文章通過(guò)實(shí)例代碼對(duì)接口做了詳解,需要的朋友可以參考下
    2017-04-04
  • c#多進(jìn)程通訊的實(shí)現(xiàn)示例

    c#多進(jìn)程通訊的實(shí)現(xiàn)示例

    本文主要介紹了c#多進(jìn)程通訊的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C#操作IIS程序池及站點(diǎn)的創(chuàng)建配置實(shí)現(xiàn)代碼

    C#操作IIS程序池及站點(diǎn)的創(chuàng)建配置實(shí)現(xiàn)代碼

    最近在做一個(gè)WEB程序的安裝包;對(duì)一些操作IIS進(jìn)行一個(gè)簡(jiǎn)單的總結(jié);主要包括對(duì)IIS進(jìn)行站點(diǎn)的新建以及新建站點(diǎn)的NET版本的選擇,還有針對(duì)IIS7程序池的托管模式以及版本的操作
    2013-03-03
  • C#通過(guò)Win32API設(shè)置客戶端系統(tǒng)時(shí)間的方法詳解

    C#通過(guò)Win32API設(shè)置客戶端系統(tǒng)時(shí)間的方法詳解

    在日常工作中,有時(shí)可能會(huì)需要獲取或修改客戶端電腦的系統(tǒng)時(shí)間,比如軟件設(shè)置了Licence有效期,本文以一個(gè)簡(jiǎn)單的小例子,簡(jiǎn)述如何通過(guò)C#獲取和設(shè)置客戶端電腦的系統(tǒng)時(shí)間,僅供學(xué)習(xí)分享使用,如有不足之處,還請(qǐng)指正,需要的朋友可以參考下
    2024-06-06
  • C#讀取文件所有行到數(shù)組的方法

    C#讀取文件所有行到數(shù)組的方法

    這篇文章主要介紹了C#讀取文件所有行到數(shù)組的方法,涉及C#針對(duì)文件及數(shù)組的相關(guān)操作技巧,需要的朋友可以參考下
    2015-07-07
  • C# 線程安全詳解

    C# 線程安全詳解

    這篇文章主要介紹了c# 線程安全的用法原理及使用示例,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下,希望能夠給你帶來(lái)幫助
    2021-09-09
  • C#中IList<T>與List<T>的區(qū)別深入解析

    C#中IList<T>與List<T>的區(qū)別深入解析

    本篇文章主要是對(duì)C#中IList<T>與List<T>的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01

最新評(píng)論