對matlab中的sparse 深刻理解

2021-09-02 19:58:26 字數 3655 閱讀 6528

函式功能:

這個函式與稀疏矩陣有關。

先說matlab中兩個概念:full storage organization(對應於full matrix)和sparse storage organization(對應於sparse matrix)。

而要說明這兩個概念,需要介紹稀疏矩陣的概念。

一般意義上的稀疏矩陣,就是看起來很鬆散的,也就是說,在這個矩陣中,絕大多數元素是零元素。例如:

0, 0, 0, 0;

0, 0, 1, 0;

0, 0, 0, 0;

0, 1, 0, 2;

計算機儲存稀疏矩陣可以有兩種思路:

1.按照儲存乙個普通矩陣一樣儲存乙個稀疏矩陣,比如上面這個稀疏矩陣中總共十六個元素(三個非零元素),把這些元素全部放入儲存空間中。這種儲存方式,在matlab就叫做full storage organization。

2.只儲存非零元素,那麼怎麼儲存呢?

(4,2) 1

(2,3) 1

(4,4) 2

看出來了吧, 只儲存非零元素在稀疏矩陣中的位置和值。比如,上面所舉的這個例子,值為2的項在第4行第4列,那麼我們就只需要儲存這一非零項在稀疏矩陣中的「座標」(4,4)和這一非零項的值2。在matlab中,這種儲存方式就叫做sparse storage organization。雖然,這樣要多儲存一組座標,但如果稀疏矩陣中非零元素非常少,以這種儲存方式儲存稀疏矩陣反而節省了記憶體空間。

為什麼matlab中會同時存在這兩種儲存方式呢?

第一種方式, 進行矩陣運算時(比如稀疏矩陣的乘法),演算法簡單易實現,程式執行的快。

而第二種方式,雖然有時可以節省儲存資料時占用的儲存空間,但進行運算時需要專門的演算法實現,因此執行起來也要更耗時。

就是方便而已,沒有什麼實質性的變化,兩種格式哈

你好! 這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器, 可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。

全新的介面設計,將會帶來全新的寫作體驗;

在創作中心設定你喜愛的**高亮樣式,markdown將**片顯示選擇的高亮樣式進行展示;

全新的katex數學公式語法;

增加了支援甘特圖的mermaid語法1

功能;增加了焦點寫作模式、預覽模式、簡潔寫作模式、左右區域同步滾輪設定等功能,功能按鈕位於編輯區域與預覽區域中間;

增加了檢查列表功能。

撤銷:ctrl/command + z

重做:ctrl/command + y

加粗:ctrl/command + b

斜體:ctrl/command + i

無序列表:ctrl/command + shift + u

有序列表:ctrl/command + shift + o

檢查列表:ctrl/command + shift + c

插入**:ctrl/command + shift + k

插入:ctrl/command + shift + g

直接輸入1次#,並按下space後,將生成1級標題。

輸入2次#,並按下space後,將生成2級標題。

以此類推,我們支援6級標題。有助於使用toc語法後生成乙個完美的目錄。

強調文字

強調文字

加粗文字加粗文字

標記文字

刪除文字

引用文字

h2o is是液體。

210 運算結果是 1024.

帶尺寸的:

當然,我們為了讓使用者更加便捷,我們增加了拖拽功能。

去部落格設定頁面,選擇一款你喜歡的**片高亮樣式,下面展示同樣高亮的**片.

// an highlighted block

var foo =

'bar'

;

專案1專案2

專案3乙個簡單的**是這麼建立的:

專案value

電腦$1600

手機$12

導管$1

使用:---------:居中

使用:----------居左

使用----------:居右

第一列第二列

第三列第一列文字居中

第二列文字居右

第三列文字居左

smartypants將ascii標點字元轉換為「智慧型」印刷標點html實體。例如:

type

ascii

html

single backticks

'isn't this fun?'『isn』t this fun?』

quotes

"isn't this fun?"「isn』t this fun?」

dashes

-- is en-dash, --- is em-dash– is en-dash, — is em-dash

markdown

text-to-

html conversion tool

authors

john

luke

乙個具有註腳的文字。2

markdown將文字轉換為 html。

您可以使用渲染latex數學表示式 katex:

gamma公式展示 γ(n

)=(n

−1)!

∀n∈n

\gamma(n) = (n-1)!\quad\forall n\in\mathbb n

γ(n)=(

n−1)

!∀n∈

n 是通過尤拉積分

γ (z

)=∫0

∞tz−

1e−t

dt.\gamma(z) = \int_0^\infty t^e^dt\,.

γ(z)=∫

0∞​t

z−1e

−tdt

.

你可以找到更多關於的資訊latex數學表示式here.

可以使用uml圖表進行渲染。 mermaid. 例如下面產生的乙個序列圖::

這將產生乙個流程圖。:

我們依舊會支援flowchart的流程圖:

如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當你完成了一篇文章的寫作, 在上方工具欄找到文章匯出,生成乙個.md檔案或者.html檔案進行本地儲存。

如果你想載入一篇你寫過的.md檔案或者.html檔案,在上方工具欄可以選擇匯入功能進行對應副檔名的檔案匯入,

繼續你的創作。

mermaid語法說明↩︎

註腳的解釋 ↩︎

matlab中的sparse函式

matlab中sparse函式和full函式 這對函式可以看做是一對反義詞,看下sparse函式和full函式在matlab中的實現。從上面幾個例子,可以直觀知道sparse函式和full函式的作用。這些只是簡單的說明的,現在下面講乙個sparse函式常用的用法 s sparse i,j,s,m,n...

MATLAB中對矩陣的變換

矩陣的變換主要有對角陣,三角陣,矩陣的轉置,矩陣的旋轉,矩陣的翻轉,矩陣求逆等操作。下面我將對以上幾種操作進行總結。對角矩陣 只有對角線上有非零元素的矩陣。數量矩陣 對角線上的元素相等的對角矩陣。單位矩陣 對角線上的元素都為1的矩陣。提取矩陣中對角線的元素 diag a 提取矩陣a的主對角線元素,產...

個人對sparse在神經網路學習中的一些理解

越來越覺得sparse在學習過程中的重要性了,正是sparse,才導致了有限空間內,可以儲存更多的記憶,如果沒有saprse,來了模式1,你的記憶存滿,來了模式2,你的記憶將被修改。此時你就無法同時記憶模式1和模式2。類似dropout sparse 以及retifier這些東西,本質上還是增加sp...