欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

誰給詳細解釋下matlab里的稀疏帶狀矩陣創建命令SM

方一強2年前29瀏覽0評論

誰給詳細解釋下matlab里的稀疏帶狀矩陣創建命令SM?

產生稀疏存儲矩陣

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