iT邦幫忙

2024 iThome 鐵人賽

DAY 21
0
自我挑戰組

資料結構面面觀系列 第 21

矩陣介紹(下)

  • 分享至 

  • xImage
  •  

矩陣相乘(MATRIX MULTIPLICATION)

【定義】

假設A為(m × n)矩陣,而B為(n × p)矩陣,則我們可以將A矩陣乘上

B矩陣以得到一個(m × p)的C矩陣,因此,在C矩陣上的第i列第j行的元素必定等於A矩陣的第i 列乘上B矩陣的第j行(兩個向量的內積)。

矩陣相乘之演算法 程式範例

/假設A,B,C均為m x n陣列,這個函數要求出C=AB*/

static void matrix_Mul(int m, int n, int p, int A[][], int B[][], int C[][])

{

 int i, j, k;

 for (i = 0; i < m; i++)

   for(j = 0; j < n; j++)

    {

       C[i][j]=0;

       for (k=0;k<n;k++)

        C[i][j] = C[i][j] + A[i][k] * B[k][j];

    }

}

稀疏矩陣(SPARSE MATRIX)

【定義】是指矩陣中大部份元素都沒有使用,元素稀稀落落,

所以稱為稀疏矩陣。

【概念】在M× N 的矩陣中,多數的資料值為0。

【處理方法】

【方法一】直接利用M x N的二維陣列來一一對應儲存。

【方法二】利用3-tuple結構來儲存非零元素

稀疏矩陣:處理方法一

【方法一】直接利用M × N的二維陣列來一一對應儲存。

【缺點】

1.浪費空間:因為多數為0。
2.浪費時間:因為要處理一些不必要的計算。

稀疏矩陣:處理方法二

【方法二】利用3-tuple結構來儲存非零元素

【作法】假設有一個M*N的稀疏矩陣中共有K個非零元素,則必須要準備一個二維陣列A[0..K,0..2]

【優點】只儲存非0之資料,因此,可以減少記憶體空間的浪費。


上一篇
矩陣介紹(上)
下一篇
多項式的表示方法
系列文
資料結構面面觀24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言