稀疏矩阵

稀疏矩阵定义:含有大量0元素的矩阵

一个稀疏矩阵包括m*3项元素,其中m是原数组中非零项的个数。其第一列是行下标,第二列是列下标,第三列是非零项的值

储存一个浮点数需要8字节,一个下标值需要4字节,则储存整个矩阵需要16*m个字节

1.稀疏矩阵的存储方式

对于稀疏矩阵,MATLAB仅存储矩阵所有的非零元素的值及其位置

2.稀疏矩阵的生成

利用函数sparse(稀疏)建立一般的稀疏矩阵

sparse(A):由非零元素和下标生成稀疏矩阵A

sparse(m,n):生成一个m*n的所有元素都是0的稀疏矩阵

sparse(u,v,a):生成大小为max(u) * max(v)的稀疏矩阵。其中u和v是整数向量,a是实数或者是复数向量

sparse(u,v,a,m,n):生成一个m*n的稀疏矩阵,(u,v)是对应值a的坐标

spconvert(D):生成一个稀疏矩阵。D有三列,第一列是行下标,第二列是列下标,第三列是非零项的值

full(S):将稀疏矩阵S转换成一个满矩阵

Python

>> s = sparse([12,4,5,5,2],[1,4,5,2,6],[41,532,2,4,6],12,6)

s =

(12,1) 41

(5,2) 4

(4,4) 532

(5,5) 2

(2,6) 6

>> A = [1 0 0 0; 0 9 0 0; 4 0 8 0]

A =

1 0 0 0

0 9 0 0

4 0 8 0

>> S = sparse(A)

S =

(1,1) 1

(3,1) 4

(2,2) 9

(3,3) 8

>> A_1 = full(S)

A_1 =

1 0 0 0

0 9 0 0

4 0 8 0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

>>s=sparse([12,4,5,5,2],[1,4,5,2,6],[41,532,2,4,6],12,6)

s=

(12,1)41

(5,2)4

(4,4)532

(5,5)2

(2,6)6

>>A=[1000;0900;4080]

A=

1000

0900

4080

>>S=sparse(A)

S=

(1,1)1

(3,1)4

(2,2)9

(3,3)8

>>A_1=full(S)

A_1=

1000

0900

4080

spy()函数可以对稀疏矩阵中的非零元素进行图形化显示,采用nnz(S)/prod(size(S))计算稀疏矩阵的非零元素密度

Python

spy(A)

1

spy(A)

利用特定函数建立稀疏矩阵

S = speye(m,n):创建单位稀疏矩阵

S = spones(X):创建非零元素为1的稀疏矩阵

S = sprand(X):创建非零元素为均匀分布的随机数稀疏矩阵

S = sprandn(X):创建非零元素为高斯分布的随机数稀疏矩阵

S = sprandsym(X):创建非零元素为高斯分布的随机数对称稀疏矩阵

S = spdiags(X):创建对角稀疏矩阵

S = spalloc(X):为稀疏矩阵分配空间

3.稀疏矩阵的运算

满矩阵的四则运算法则对稀疏矩阵同样有效,但是返回结果可能是稀疏矩阵或满矩阵。只要参与运算的任一矩阵为满矩阵,则返回结果为满矩阵

稀疏矩阵的数乘与幂计算结果都是稀疏矩阵

特征值与特征向量

1.特征值的定义

设 A 是n阶方阵,如果存在数m和非零n维列向量 x,使得 Ax=mx 成立,则称 m 是矩阵A的一个特征值(characteristic value)或本征值(eigenvalue)。

2.相关函数

eig(A):求包含矩阵A的特征值向量

[X,D] = eig(A):产生一个矩阵A的特征值在对角线上的对角矩阵D和矩阵X,他们的列是相应的特征向量,满足AX = XD。为了得到有更好条件特征值的矩阵,要进行相似变换

[T,B] = balance(A):找到一个相似变换矩阵T和矩阵B,使得他们满足B = T-A·T。B是用命令balance求得的平衡矩阵

eig(A,’nobalance’):不经过平衡处理求得的A的特征值和特征向量,也就会不进行平衡相似变换

eigs(A):返回一个由矩阵A的部分特征值组成的向量,和eig命令一样,但不是返回全部的特征值。 如果不带有参量,则计算出最大的特征值。当计算所有的特征值时,如果矩阵A的特征值不小于6,则计算出6个特征值

eigs(f,n):求出矩阵A的部分特征值。     在使用一个矩阵列的线性运算符时,字符串f中包含的是M文件的文件名,n指定问题的阶次。用这种方法来求特征值比开始就用运算符来求快得多

eigs(A,B,k,sigma):求矩阵A的部分特征值,矩阵B的大小与A相同;若没有给出B = eye(size(A)),那么k就是要计算的特征值得个数;若k没有给出就用小于6的数或者A的秩

condeig(A):返回一个由矩阵A的特征值条件数组成的向量

[V,D,s] = condeig(A):返回[V,D] = eig(A) 和 S = condeig(A)

赞赏作者

喜欢 (4)or分享 (0)

matlab 求特征值的命令,MATLAB自学笔记(九):稀疏矩阵、特征值与特征向量相关推荐

  1. matlab求高阶微分的命令,matlab求解高阶微分方程辅导

    同学你好,我们可以辅导matlab高阶微分方程.关于matlab解决高阶微分方程的知识点如下,如果同学感觉还死有不明白的地方,可以直接联系我们,安排专业老师进行一对一授课讲解. 微分方程(Differ ...

  2. 程序阅读_全面详解LTE:MATLAB建模仿真与实现_自学笔记(1)调制与编码_程序阅读

    程序阅读_全面详解LTE:MATLAB建模仿真与实现_自学笔记(1)调制与编码_程序阅读 在粗浅地掌握了LTE知识后,从今天开始对<全面详解LTE:MATLAB建模仿真与实现>一书的学习. ...

  3. matlab数值拟合r2_用MATLAB求RMSE怎么用MATLAB计算均方误差

    用MATLAB求RMSE 怎么用MATLAB计算均方误差 www.zhiqu.org     时间: 2020-12-07 function f=RMSE(h1,h2) %RMSE return RM ...

  4. matlab 求n 的和,MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的...

    点击查看MATLAB求1的阶乘加到n的阶乘和 不要现有的函数,要自己编写出来的具体信息 答:myfactorial = @(n) factorial(n) myfactorial = @(n) pro ...

  5. 用matlab求微分方程系数,用Matlab软件求解微分方程的解析解和数值解.pdf

    用Matlab软件求解微分方程的解析解和数值解.pdf Matlab软件求解微分方程 的解析解和数值解 数学与信息科学学院 孔祥庆 数学建模实验项目2 (1) 一.实验名称: Matlab软件求解微分 ...

  6. matlab求离散系统,离散系统的MATLAB的实现.doc

    离散系统的MATLAB的实现 离散系统的MATLAB实现 一.设计目的 通过该设计,理解系统的单位抽样响应,频率响应及零极点增益的概念及意义. 课程设计环境 计算机.MATLAB软件 设计内容及其主要 ...

  7. matlab求微分方程同届,matlab求微分方程精确解及近似解.ppt

    matlab求微分方程精确解及近似解 求微分方程的解 问题背景和实验目的 Euler 折线法 初值问题的Euler折线法 Euler 折线法举例 Euler 折线法源程序 Euler折线法举例(续) ...

  8. matlab中dist的命令,matlab dist函数

    dist--欧式距离加权函数(Euclidean distance weight function) 语法: Z = dist(W,P) df = dist('deriv') D = dist(pos ...

  9. Matlab App Designer自学笔记(九):容器及图窗控件

    一.容器 容器,顾名思义,就是装东西的.Matlab里的容器有面板和选项卡组两个(2018a版本). 1.1 卡组 选项卡组就是分栏使用,下图这个就是: 例如在画布里设置这么两个卡组(可以点击+增加) ...

  10. matlab求微分方程同届,Matlab学习——求解微分方程(组)

    介绍: 1.在 Matlab 中,用大写字母 D 表示导数,Dy 表示 y 关于自变量的一阶导数,D2y 表示 y 关于自变量的二阶导数,依此类推.函数 dsolve 用来解决常微分方程(组)的求解问 ...

最新文章

  1. cad关闭图层的快捷命令是什么_CAD快捷命令汇总
  2. 12306订票候补是个坑_加30元就能抢到火车票?12306这个功能更靠谱!今起可买除夕火车票,抢票高峰来了...
  3. 升级鸿蒙系统的手机名单,倒计时2天!首批鸿蒙OS适配名单确定,你的手机在列吗?...
  4. 用CFree写的Windows SDK 画线程序
  5. Matlab如何绘制散点图矩阵,不同版本的散点图矩阵
  6. 如何验证本地磁盘或网络磁盘是否可以进行读写操作
  7. 研究partner determination的逻辑能否抽出来,以API的形式被我们Odata service implementation code里调用?
  8. 视频来了!Visual Studio Online 东半球首秀 @ .NET Conf 2019 中国峰会
  9. Windows平台RTMP推送摄像头对接介绍
  10. dbhelper的使用
  11. 百度自动驾驶出租车服务在北京开放:无需预约免费试乘
  12. 自旋锁--Test and Set Clock机制分析
  13. 计算机 蓝牙鼠标卡顿,蓝牙鼠标卡顿、漂移现象的解决方法
  14. HTML5“爱心鱼”游戏总结
  15. matlab 利用polyfitpolyval函数进行基线矫正【matlab程序】
  16. 儿童python入门书籍推荐_有哪些Python入门的书籍值得推荐?
  17. 华为2019算法大赛CTR预估数据探索
  18. ffmpeg获取音频信息
  19. USB调试时出现“because an app is obscuring a permission request settings cab't verify your resonse”问题
  20. 网页抓取及信息提取(三)

热门文章

  1. linux kvm usb设备,KVM虚拟机上关于宿主机的USB设备使用问题探究
  2. AE常用快捷键及最常用功能说明
  3. 推荐系统系列——经典推荐算法
  4. linux系统支持网银吗,Linux系统能使用网银吗?
  5. matlab 生成伽罗华域中元素代码
  6. python局域网文件互传
  7. unity3d如何有效地组织代码?
  8. 一个电源工程师要学哪些软件?
  9. 两个次序统计量的联合密度函数
  10. 蓝桥杯 算法训练 调和数列问题