亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

安裝

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

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

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

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

在使用命名空間之后,可通過Matrix.Build來創(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對象,后文簡稱MB,用于生成矩陣,如果需要頻繁創(chuàng)建矩陣,則可創(chuàng)建一個矩陣生成器,示例如下

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);   //通過表達(dá)式生成元素
MB.DenseDiagonal(3, 4, 2.0); //3x4對角為2.0
MB.DenseIdentity(3);     // 3x3的單位陣

矩陣類型

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

  • 缺省,則所有元素為0
  • 數(shù)值,則所有元素都是這個數(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用于生成對角矩陣,包括三種重載,

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

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

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

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

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

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

相關(guān)文章

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

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

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)Word轉(zhuǎn)換RTF,文中的示例代碼講解詳細(xì),對我們學(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)閉窗體的方法,通過對窗體參數(shù)的簡單設(shè)置實現(xiàn)C#禁用雙擊窗體圖標(biāo)關(guān)閉窗體的功能,非常簡單實用,需要的朋友可以參考下
    2015-08-08
  • C#接口歸納總結(jié)實例詳解

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

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

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

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

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

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

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

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

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

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

    C# 線程安全詳解

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

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

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

最新評論