回覆列表
  • 1 # 使用者4383246126739

    產生稀疏儲存矩陣

    sparse可以講完全儲存方式轉換為稀疏儲存方式,那麼,當使用稀疏矩陣時,要先產生完全儲存方式的矩陣,然後再轉換,這顯然是不可取的,MATLAB有自己產生稀疏矩陣的函式spconvert:

    B=spconvert(A);A為一個m*3或m*4的矩陣,A的每一列的意義分別為:

    (i,1)第i非零元素所在行

    (i,2)第i非零元素所在列

    (i,3)第i非零元素的實部

    (i,4)第i非零元素的虛部

    3.帶狀(對角)稀疏矩陣

    函式 spdiags

    格式 [B,d] = spdiags(A) %從矩陣A中提取所有非零對角元素,這些元素儲存在矩陣B中,向量d表示非零元素的對角線位置。

    B = spdiags(A,d) %從A中提取由d指定的對角線元素,並存放在B中。

    A = spdiags(B,d,A) %用B中的列替換A中由d指定的對角線元素,輸出稀疏矩陣。

    A = spdiags(B,d,m,n) %產生一個m×n稀疏矩陣A,其元素是B中的列元素放

    在由d指定的對角線位置上。

    例1

    >>A = [11 0 13 0

    0 22 0 24

    0 0 33 0

    41 0 0 44

    0 52 0 0

    0 0 63 0

    0 0 0 74];

    >>[B,d] = spdiags(A)

    B =

    41 11 0

    52 22 0

    63 33 13

    74 44 24

    d =

    -3 %表示B的第1列元素在A中主對角線下方第3條對角線上

    0 %表示B的第2列在A的主對角線上

    2 %表示B的第3列在A的主對角線上方第2條對角線上

    例1

    >> B=[1 2 3 4

    5 6 7 8

    9 10 11 12

    13 14 15 16];

    >> d=[-2 0 1 3];

    >> A=spdiags(B,d,4,4);

    >> full(A)

    ans =

    2 7 0 16

    0 6 11 0

    1 0 10 15

    0 5 0 14

  • 中秋節和大豐收的關聯?
  • 高俊芳是怎樣一步一步走到現在這個結局的?