最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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#流程控制詳解

    C#流程控制詳解

    這篇文章主要介紹了C#流程控制詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07
  • 雅虎公司C#筆試題(后半部份才是)

    雅虎公司C#筆試題(后半部份才是)

    雅虎公司C#筆試題(后半部份才是)...
    2007-04-04
  • c#項(xiàng)目將dll打包到exe中的步驟

    c#項(xiàng)目將dll打包到exe中的步驟

    這篇文章主要介紹了c#項(xiàng)目將dll打包到exe中的步驟,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • C#獲取USB事件API實(shí)例分析

    C#獲取USB事件API實(shí)例分析

    這篇文章主要介紹了C#獲取USB事件API,實(shí)例分析了C#操作USB事件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • 探討c#中的unchecked是什么意思,起什么作用?

    探討c#中的unchecked是什么意思,起什么作用?

    本篇文章是對(duì)c#中的unchecked進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C# TimeSpan計(jì)算時(shí)間差的操作完整指南

    C# TimeSpan計(jì)算時(shí)間差的操作完整指南

    TimeSpan 是 .NET 中用于表示時(shí)間間隔或持續(xù)時(shí)間的重要結(jié)構(gòu)體,它提供了豐富的方法和屬性來(lái)處理時(shí)間跨度,下面我們就來(lái)看看C# TimeSpan計(jì)算時(shí)間差的完整操作吧
    2025-12-12
  • C#連續(xù)任務(wù)Task.ContinueWith方法

    C#連續(xù)任務(wù)Task.ContinueWith方法

    這篇文章介紹了C#中的連續(xù)任務(wù)Task.ContinueWith方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 解答“60k”大佬的19道C#面試題(下)

    解答“60k”大佬的19道C#面試題(下)

    這篇文章主要解答了“60k”大佬的19道C#面試題中的后9道,文中的面試題比較小眾,作者給了不錯(cuò)的答案,相信對(duì)你以后的面試有所幫助,感興趣就來(lái)了解下
    2020-06-06
  • C#使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁(yè)源碼的演示步驟

    C#使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁(yè)源碼的演示步驟

    CEFSharp是一個(gè)用C#編寫的庫(kù),它是Chromium Embedded Framework (CEF) 的.NET封裝和擴(kuò)展,CEF允許開發(fā)者在自己的應(yīng)用程序中嵌入一個(gè)功能強(qiáng)大的HTML渲染引擎,從而能夠呈現(xiàn)網(wǎng)頁(yè)內(nèi)容,本文介紹了C#如何使用CEFSharp獲取動(dòng)態(tài)網(wǎng)頁(yè)源碼,需要的朋友可以參考下
    2024-08-08
  • C#利用子線程刷新主線程分享教程

    C#利用子線程刷新主線程分享教程

    本文將詳細(xì)介紹C#利用子線程如何刷新主線程,需要了解更多的朋友可以參考下
    2012-11-11

最新評(píng)論

遂川县| 临清市| 体育| 蒙阴县| 内黄县| 凯里市| 罗甸县| 宜兰市| 通州市| 巴马| 沙田区| 民和| 德令哈市| 利津县| 邢台市| 隆化县| 达日县| 丹东市| 京山县| 璧山县| 陵川县| 涿鹿县| 思茅市| 古丈县| 合阳县| 福海县| 平南县| 凤冈县| 漳州市| 海门市| 剑阁县| 成都市| 平陆县| 揭阳市| 莱阳市| 仲巴县| 威远县| 合作市| 河池市| 柘荣县| 平乡县|