肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 谁给详细解释下matlab里的稀疏带状矩阵创建命令SM – java – 前端

谁给详细解释下matlab里的稀疏带状矩阵创建命令SM – java – 前端

时间:2020-06-01 02:48:05

相关推荐

产生稀疏存储矩阵

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 033 0

41 00 44

0 52 00

0 063 0

0 00 74];

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

B =

41 110

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 =

270 16

06 110

10 10 15

050 14

如果觉得《谁给详细解释下matlab里的稀疏带状矩阵创建命令SM – java – 前端》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。