精华内容
下载资源
问答
  • 常用的矩阵图有什么型
    千次阅读
    2020-12-23 15:09:19

    信息举报

    时间:2020-12-23 本页为您甄选多篇描写带权有向图的邻接矩阵中0和无穷大,带权有向图的邻接矩阵中0和无穷大精选,带权有向图的邻接矩阵中0和无穷大大全,有议论,叙事 ,想象等形式。文章字数有400字、600字、800字....请问在数据很多的情况下,怎样用matlab求有向图的带权邻接矩阵?急, 请问在数据很多的情况下,怎样用matlab求有向图的带权邻接矩阵?急,直接把数据导入到MATLAB里,然后和0比较,确定一个0-1矩阵,再和这个0-1相乘就可以了.不知道你具体的数据是什么,只说出了方法文天...

    英语翻译任何一个图都可以用矩阵(邻接矩阵、Laplace矩阵等)来表示,并可通过矩阵的特征值(图谱)来研究图的结构及性质 英语翻译任何一个图都可以用矩阵(邻接矩阵.Laplace矩阵等)来表示,并可通过矩阵的特征值(图谱)来研究图的结构及性质.本文主要讨论具有固定...

    用数组表示法(邻接矩阵)和邻接表两种存储结构分别表示下面的无向图. 用数组表示法(邻接矩阵)和邻接表两种存储结构分别表示下面的无向图.数组v1 v2 v3 v4 v5 v6v1 0 1 0 0 1 1v2 0 1 1 0 0 1v3 0 1 0 1 0 0v4 0 0 1 0 0 1v5 0 1 0 0 0 1v6 1 1 0 1 1 0邻接表...

    一直如图所以的有向图,请给出该图的:(1)每个定点的出入度:(2)邻接矩阵 一直如图所以的有向图,请给出该图的:(1)每个定点的出入度:(2)邻接矩阵(1)出入度出 入1 1 2 (有条边没方向,暂定为1->2)2 1 33 2 14 3 15 1 26 2 3(2)邻接矩阵1 2 3 4 5 61 0 1 0 ...

    在线急求熟悉图的两种常用的存储结构,邻接矩阵和邻接表. 在线急求熟悉图的两种常用的存储结构,邻接矩阵和邻接表.1.熟悉图的两种常用的存储结构,邻接矩阵和邻接表.2.建立有向图,用邻接表存储结构存储.3.在邻接表存储结构上实现深度优先遍历.用C语言编写,数据.

    更多相关内容
  • L型矩阵图是最基本和最常用的一种。基本的L型矩阵图显示了两组数据之间的关系(或者它可以用来显示一组项目与自身的关系)。 一般用一个二维表格来表示,第一组的项目列在左手边,而第二组的项目则列在最上面一行。...

    矩阵图是一种说明两个或多个组之间的关键关系的工具。它可以被用来进一步显示关系的强度或关系的不同方面。

    L型矩阵图是最基本和最常用的一种。基本的L型矩阵图显示了两组数据之间的关系(或者它可以用来显示一组项目与自身的关系)。

    一般用一个二维表格来表示,第一组的项目列在左手边,而第二组的项目则列在最上面一行。

    如下面所示:

    示例:

    L型矩阵图最常见的用途之一是说明一组客户需求(第1组项目)与一组不同客户(第2组项目)的关系。假设一个包装材料生产商有三个不同的客户:食品生产商的包装,医疗设备客户的包装,以及一般用途生产商的包装。质量工程师可能会生成以下L型矩阵图来总结这些不同客户的关键客户要求。

    L型矩阵图迅速说明了公司客户的不同要求。

    参考:

    https://www.sixsigmadaily.com/matrix-diagram-l-shaped/

    https://www.slideshare.net/

    https://www.scribd.com/

    展开全文
  • 矩阵论】矩阵的相似标准(3)

    千次阅读 2020-10-30 15:11:21
    矩阵对角化引入探讨线性变换的对角化问题。(定义、等价命题和定理)

    矩阵的相似标准型之“可对角化的条件”

    本节主要围绕着矩阵(或线性变换)能否进行对角化以及如何进行对角化进行讨论。
    【对角化的判断】

    • 矩阵的对角化:对给定的矩阵,判断能否相似于对角阵
    • 线性变换的对角化:对给定的线性空间上的线性变换,判断是否存在空间的一组基,使得其矩阵是对角阵。

      前面有关线性变换、线性空间和矩阵讨论了那么多,我们已经可以在矩阵和线性变换之间建立一个对应关系了,因此矩阵的对角化问题和相似变换的对角化问题在某种程度上是一致的。

    一. 矩阵对角化(回顾)

    矩阵对角化↔矩阵相似于对角阵

    以下回顾线性代数中三个相似于对角阵的判定定理

    1. 定理1——线性无关的特征向量
      在这里插入图片描述
      在这里插入图片描述

    [0]:上述过程理解的时候可以按照从左边推向右边来理解,但是其变化都是等价变化,也就是两边都可以互相推导。

    [1]:矩阵A相似于对角阵的定义——存在一个可逆阵P,有P-1·A·P = Λ成立,而且根据“相似的矩阵具有相同的特征量”,可以推知对角矩阵Λ的对角线上的元素应该就是各个特征值。

    [2]:将矩阵P拆成列分块矩阵,对等式P-1·A·P = Λ两边同时左乘矩阵P,就能得到A·P = P·Λ

    小结:前面几节中一些推导证明中老师也用过这样的变化技巧,以后看到形如P-1AP这样的式子,就可以考虑左乘P-1的逆矩阵来变换

    [3]:分块矩阵的运算

    [4]:根据等式,可以得到APi = λiPi(i = 1,2,…,n)的一系列等式,根据特征值和特征向量的定义,Pi就是矩阵A对应于特征值λi的特征向量。又因为Pi是P矩阵的列分块且矩阵P可逆,“可逆矩阵的列(行)向量组都是线性无关的”,因此得到——A有n个线性无关的特征向量。

    通过定理一,我们知道要判断某个矩阵能否进行对角化,只需要计算矩阵有多少个线性无关的特征向量。

    问题是我们如何快速判断矩阵的特征向量是否线性无关呢?——引出定理2.

    1. 定理2——特征向量的线性无关性
      在这里插入图片描述
      由此,将判断特征向量是否线性无关的问题转化成求解特征值,并判断是否具有n个互异的特征值。

    2. 定理3——重根的特征向量的线性无关性
      在这里插入图片描述
      该定理告诉我们,每个特征值的线性无关的特征向量组合在一起构成的特征向量组依然是线性无关的。


    二. 线性变换的可对角化问题

    把关于矩阵对角化的定理嫁接到线性变换的问题讨论中来。
    读者可以将第一和第二部分的定理描述与证明对照起来理解、记忆。

    已知——假设V是n维线性空间,f∈End(V):

    定理1

    “***f可对角化↔f有n个线性无关的特征向量***”

    <必要性证明>
    在这里插入图片描述
    [0]:对于这条定理的证明我们有两条思路。其一,就是把线性变换用矩阵语言描述出来,然后通过矩阵的对角化条件进行证明;其二,我们可以直接用线性变换的语言来进行描述和证明。这里我们采用第二种方法。

    [1]:线性变换f可以对角化的定义——存在一组基,使得变换f在这组基下的矩阵为对角阵。
    p.s. 这里对角阵中对角线上的元素现在并不能确定为特征值,只是用λ这个符号表示而已。

    [2]:线性变换的矩阵表示,已知一个向量ε和线性变换对应的矩阵A,那么该原像对应的像应该是Aε。

    [3]:根据线性变换的特征值和特征向量的定义,且εi≠0(i = 1,2,…,n),所以λi就是线性变换f 的特征值,εi是线性变换f对应于特征值λi的特征向量。

    线性变换的特征向量的定义和一些基本介绍参考博文《【矩阵论】矩阵的相似标准型(1)》

    在这里插入图片描述

    [4]:因为ε1,ε2,…,εn本来就是取的一组基,所以该向量组肯定是线性无关的。从而得证f有n个线性无关的特征向量。

    <充分性证明>
    在这里插入图片描述
    [1]:已知条件,f有n个线性无关的特征向量η1,η2,…,ηn,且满足特征向量的定义

    [2]:因为f是n维线性空间V中的一个线性变换,且向量组η1,η2,…,ηn是n个线性无关的特征向量。“n维空间中任意n个线性无关的特征向量都是该n维空间的一组基”,因此V的基就是η1,η2,…,ηn

    [3]:求解线性变换f在给定的一组基η1,η2,…,ηn的矩阵表示,就是要求解原像ηi(i = 1,2,…,n)经过变换后得到的像f(ηi)在该组基下的坐标。且我们又已知f(ηi) = λiηi,所以能够写出来矩阵就是一个对角阵。

    同样地,与矩阵对角化讨论思路一样,我们需要解决特征向量是否线性无关的问题,引出了定理二。

    定理2

    f属于不同特征值的特征向量线性无关

    证明“线性相关性”题目的时候往往是根据定义,对于一组向量αi,写出一组线性方程Σki ·αi = 0,然后判断这个方程是否具有非零解。

    在这里插入图片描述
    按照线性相关性的定义写出x1η1+x2η2+…+xsηs = θ,按照线性变换f的线性性可以展开得到上式(1),等式两边同时乘上λ1即可得到上式(2)

    (1)-(2)得到下列方程
    在这里插入图片描述

    思路:【归纳假设】
    因为我们最终是要证明这s个特征向量线性无关,可以采用数学归纳法

    ①当k = 1时,ηk = η1≠θ,一定是线性无关的;
    ②假设当k = s-1时,η1,η2,…,ηs-1是线性无关的;
    ③则需要证明当k = s时,η1,η2,…,ηs-1,ηs也是线性无关的。

    在假设的前提下,上图中s-1个特征向量,η2,…,ηs应该是线性无关的,所以各项系数应该全为0.
    又因为特征值是互异的,所以只可能有x2 = x3 = … = xs = 0

    将x2 = x3 = … = xs = 0代入到x1η1+x2η2+…+xsηs = θ,则有x1η1 = θ,所以能推出x1 = 0,最终推出这s个向量都是线性无关的。

    至此,当我们判断一个线性变换是否可对角化的时候,只需要判断这个线性变换是否具有n个线性无关的特征向量

    要判断这n个特征向量是否线性无关,只需要确定其对应的n个特征值是不是互异的

    定理3

    在这里插入图片描述
    同样地,各组线性无关的特征向量组合在一个依然是一组线性无关的特征向量。
    略去不证。


    三. 特征子空间

    对于线性无关特征向量的个数这一概念,还可以借助“特征子空间”进行描述。

    1. 定义

    (1)f 的相应于特征值 λ0 的特征子空间

    在这里插入图片描述

    为什么V0一定是子空间

    对于f(η) = λ0·η,可以把这一线性空间看成是【f-λ0·I】的核子空间,即Ker(f-λ0·I),其中I是恒等变换。

    把核子空间的定义代入,Ker(f-λ0·I) = {η|f-λ0·I = θ} = {η|f = λ0·I },也就是说f的作用就是使原像在数值上扩大或缩小λ0倍,满足这样关系的原像必然满足f(η) = λ0η的关系式。

    【V0中不止包含f线性变换对应于λ0的特征向量】

    • V0是一个子空间,那么零向量θ肯定是要在子空间中的。
    • 我们可以将θ代入进行验证,f(θ) = λ0θ = θ,所以θ∈V0

      综上,Vλ0里面所含的向量应该是线性变换f关于λ0的特征向量以及零向量

    (2)重要性

    我们之前提起过,引出“特征子空间”这一概念是为了对【线性无关的特征向量的个数】进行描述。

    基于此,f 的属于 λ0 的线性无关的特征向量的个数 = dim(Vλ0

    2. 例题演练

    【例】 求解给定的线性变换的特征值和特征子空间
    在这里插入图片描述
    求解线性变换的特征值,就是把线性变换关于某一组基的矩阵求解出来,然后求解该矩阵的特征值。

    本题所示的这个线性变换的特征多项式和特征值我们在《【矩阵论】矩阵的相似标准型(1)》中求解过了

    部分演算如下图所示,其特征值是一个四重根——0

    在这里插入图片描述

    则我们要求的V0 = { η | f(η) = θ } = Ker(f)
    在该系列第(1)篇博文中我们对线性变换关于特征值0的特征向量也都进行了求解,形如 a[[1,0],[-1,0]]+b[[0,1],[0,-1]],其中a和b不全为0。

    也就是说V0这个空间是由[[1,0],[-1,0]]和[[0,1],[0,-1]]这两个向量向量张成的子空间,因此要求解V0的维数,只需要验证该两个向量构成的向量组的秩。

    显然,这两个向量线性无关,所以特征子空间的维数为2,基就是该向量组。

    3. 定理1——特征子空间的维数不超过特征根的重数

    (1)定理描述

    在这里插入图片描述

    关于特征值的代数重数和几何重数

    ri:【代数重数】,对于特征方程进行代数求解得到的特征根的重数。

    dim Vλi:【几何重数】,关于特征值λi的特征子空间的维数,从几何的角度去观察。

    (2)定理证明

    【方法论】
    碰到有子空间、线性变换与矩阵这样类型的证明过程时,老师有几个惯用的证明技巧:
    将子空间的一组基进行拓展,得到更大的一个空间的一组基

    针对扩展出来的基,把线性变换的矩阵表示求解出来
    p.s. 此时这个求解出来的矩阵往往具有较好的运算性质,比如是对角或者是上三角矩阵之类的。

    对于线性变换f,任取一个特征值λ0,设f对应于该特征值的特征子空间的维数(几何重数)为t,则构造出该特征子空间的一组基。

    通过线性无关向量组的拓展,可以把特征子空间Vλ0的一组基ε1,ε2,…,εt扩展成线性变换所在的线性空间V的一组基ε1,ε2,…,εt,εt+1,εt+2,…,εn
    在这里插入图片描述
    接下来关于这一组基ε1,ε2,…,εt,εt+1,εt+2,…,εn,求解线性变换 f 的矩阵表示:

    【强调一下】
    在某一组基下求解线性变换f的矩阵表示时,打好框架——

    (f(ε1),f(ε2),…,f(εn)) = (ε1,ε2,…,εn)·A

    打好框架后,对于矩阵A,可以每一列每一列地单独考虑。
    其第一列就应该是f(ε1)这个变换后的像在基ε1,ε2,…,εn下的坐标表示。
    因为ε1在f关于λ0的特征子空间之中,所以具有f(ε1) = λ0ε1的关系,故第一列只有第一个元素为λ0,其余均为0,剩下t列(均在特征子空间中)以此类推。
    剩下的n-t列,我们不需要额外关注,故写成下图形式。
    在这里插入图片描述

    既然得到了矩阵A的形式,那么我们要利用这个矩阵来求解线性变换f的特征多项式。
    按照分块矩阵行列式的运算规则,可知道|λI-A|至少包含t个(λ-λ0)的因子。(分块矩阵的左上角分块)

    因此就证明出特征值λ0的几何重数t是不大于特征值的代数重数的。
    在这里插入图片描述

    4. 定理2——线性变换f可对角化的判定条件

    (1)定理描述
    在这里插入图片描述
    (2)定理证明

    对于一系列等价条件的证明,往往采用循环证明的方法。

    【1→2】
    假设线性空间V是n维的,那么对于线性变换f∈End(V),f的特征多项式一定是n次的。
    故:r1+r2+…+rs = n

    又:f是可以对角化的。
    根据线性变换可对角化的三个性质中的第三点,可以知道f一定有n个线性无关的特征向量。

    结合代数重数与几何重数之间的不等关系与等式的夹逼,就能由定理1推得定理2.
    在这里插入图片描述
    【2→3】

    【方法论】
    证明某个集合是另一组集合的直和,需要考虑两个问题:
    其一,另一组集合的和运算是否为直和
    其二,左边的集合和另一组集合和运算的结果是否相等。

    Vλ1+Vλ2+…+Vλs是直和

    按照往常我们要证明直和,通常都会采用这些集合的交空间为零空间来证明。

    但是对于特征子空间,我们有更方便利用的性质定理。

    根据前面的定理,我们知道,在各个Vλi中找到一组线性无关的特征向量(i= 1,2,…,s),然后把它们合并在一起,依然是一组线性无关的向量

    换言之,如果在各个特征子空间中找到它们的基,它们的基合并起来也应该就是Vλ1+Vλ2+…+Vλs对应的基,这一点就满足了直和运算的判定命题。

    V = Vλ1+Vλ2+…+Vλs

    按照往常证明两个集合相等往往是采用两个集合的相互包含性。

    这里因为若干特征子空间的和一定也是V空间的子空间,证明一个空间和其子空间相等只需要证明两个空间的维度相等即可

    在这里插入图片描述
    [1]:已经证明了Vλ1+Vλ2+…+Vλs是直和,所以直和的空间维度等于各个部分空间的维度之和

    [2]:根据第2点的已知条件dimVλi = ri

    [3]:根据题干中特征多项式的表示,重根的重数之和就应该等于原空间V的维数。
    证毕。

    【3→1】

    根据空间的直和运算,可以把每一个特征子空间的基列出来,这些基拓展在一块儿就构成了线性空间V的基。
    把线性变换f在V的这组基下的矩阵表示写出来,如下图所示,显然是一个对角阵。
    故证明出线性变换f的可对角化。
    在这里插入图片描述
    (3)意义
    三条等价定理的证明已经结束,如果我们再返回去看看这三条定理的本质,其实和矩阵可对角化的三条等价定理是一致的。

    第二条——说明了每个特征值对应的特征向量有多少个是线性无关的;
    第三条——说明了每个特征值的无关特征向量可以组合在一起。
    p.s. 只不过用“直和”这种描述方式更显得清楚。


    【例】线性变换的系列题目

    系列题目:
    线性变换的矩阵表示/
    线性变换的特征量与特征子空间的求解/
    线性变换可对角化的判断

    在这里插入图片描述
    <解>

    1. 打好矩阵求解框架——求解各个像在选定的基下的坐标表示
      在这里插入图片描述
    2. 特征值→特征多项式;
      特征子空间的基→相应于某一特征值线性无关的特征向量
      在这里插入图片描述

    下面求特征子空间的基时要注意:
    将特征值代入之后,需要求解一个矩阵方程。

    矩阵方程求出来的基础解系并不一定就是需要的特征子空间的基,基础解系只是在我们所选定的基下的坐标表示,还要把坐标和基一起运算才能得到最终的向量——所求的向量才是特征子空间的基

    在这里插入图片描述
    在这里插入图片描述
    3. 线性变换的对角化判定

    代数重数 = 几何重数
    dim V0 = 2;dim V3 = 2;

    线性无关的特征向量的个数
    在V0和V3特征子空间中均分别找出了2个线性无关的特征向量,一共具有4个线性无关的特征向量且空间C2x2在选定的基表示下也是四维的。

    基的拓展性
    将V0和V3特征子空间的基拿出来拓展在一起,就是C2x2空间的基。


    5. 定理3——线性变换可对角化的充要条件

    (1)定理描述
    在这里插入图片描述
    (2)定理证明

    ①引理及证明
    在这里插入图片描述

    .该引理证明的核心就在于反复利用矩阵乘积的秩的不等式:

    r(Asxn·Bnxt) ≥ r(A) + r(B) - n
    在这里插入图片描述

    ②定理证明

    【必要性】
    按照矩阵相似于对角阵的定义,可以得到
    在这里插入图片描述
    其中,对角阵是若干个分块对角矩阵,有ri个λi,i = 1,2,…s。

    前几篇文章我们讨论了很多有关化零多项式、最小多项式的相关内容。我们知道,相似的两个矩阵具有相同的最小多项式。
    因此,想要证明矩阵A的最小多项式没有重根,只需要证明与矩阵A相似的对角矩阵Λ的最小多项式没有重根即可。

    矩阵Λ的可能的最小多项式形式为:
    在这里插入图片描述
    且经过验证,该多项式次数最低且是化零多项式,它就是我们需要的最小多项式。因为λi(i=`1,2,…,s)是互不相同的特征值,所以显然该最小多项式是没有重根的。

    【充分性】
    现已知A的最小多项式没有重根,则可以把A的最小多项式写出如下:
    在这里插入图片描述

    要能够证明矩阵A相似于对角阵,矩阵对角化的判定定理和性质很有多,我们选择证明——矩阵A有n个线性无关的特征向量。

    根据已知直到A有s个互异的特征值,只要求出对应每一个特征值有多少线性无关的特征向量,这些无关向量的个数总和为n即可。

    按照特征值和特征向量的计算方法,对于特征值λi,需要求解齐次线性方程组(A-λi·I)x = θ,求解出其的基础解系中有多少个向量,则对应就有多少个线性无关的特征向量。

    熟悉矩阵的列空间和左零空间的关系的话,对于一个n阶方阵,其列空间的秩如果为r,则左零空间的秩就为n-r;
    且左零空间的秩就是齐次线性方程组基础解系中向量的个数。
    在这里插入图片描述
    现在需要求解Σr(A-λiI)的数值,用到我们前面证明过的引理。

    因为最小多项式也是化零多项式,所以代入矩阵A进入mλ表达式,即有:

    (A-λ1I)·(A-λ2I)…(A-λsI) = O,所以Σr(A-λiI)≤(s-1)n
    回代入sn-Σr(A-λiI)≥n;又因为矩阵A是n阶的,其含有的无关特征向量不会超过n。

    综上,得证A具有n个线性无关的特征向量→A是相似于对角阵的。


    【例】-1 证明矩阵可对角化

    矩阵的最小多项式没有重根→矩阵可对角化,这是很方便也很好用的一个证明性质。

    在这里插入图片描述
    以上,可以根据矩阵的等式关系得到矩阵的化零多项式,且该化零多项式无重根。
    又已知矩阵的最小多项式可以整除化零多项式,那么矩阵的最小多项式就更加没有重根了。

    从而能够证明出矩阵可以对角化。

    【例】-2 已知一个矩阵方程,求解矩阵相关的行列式

    已知一个有关矩阵的方程,可以挖掘出诸如化零多项式、特征量等很多信息。

    Tips:另外在有“相似”关系的问题中,常用到形如P-1AP这样的运算式,这就是利用了矩阵的相似关系。
    相似的矩阵往往会具有很多的相同量——如特征值、特征多项式等等。
    且P是一个可逆矩阵,这对于行列式运算也有很大的简化作用。

    根据前面的定理,确定了矩阵A可以对角化,且也确定了其相似的对角阵的一般形式
    在这里插入图片描述
    根据已知条件 r(A-5I) = r,因为相似的矩阵具有相同的秩,所以对于(A-5I)进行相似变换,得到Λ-5I这样的矩阵;
    Λ的形式之前已经确定了如上图,再减去5倍单位矩阵后只剩下左上部分的s阶的-7倍单位阵;

    这样的矩阵秩为r,说明s = r。

    接下来,再利用相似变换进行行列式运算,如下图所示:
    在这里插入图片描述

    p.s. 希望读者可以体会到,对于可对角化的矩阵来说,利用相似变换,把复杂矩阵的求秩、行列式或者一些代数运算统统转换成对角阵的运算,可以减少很多计算量,甚至让问题可行。

    而在这之前,要先能确定一个矩阵是否可对角化是很重要的。

    展开全文
  • 每一个pyplot函数都使一副图像做出些许改变,例如创建一幅,在中创建一个绘图区域,在绘图区域中添加一条线等等。在matplotlib.pyplot中,各种状态通过函数调用保存起来,以便于可以随时跟踪像当前图像和绘图...

    1.matplotlib.pyplot简介

    matplotlib.pyplot是一个有命令风格的函数集合,它看起来和MATLAB很相似。每一个pyplot函数都使一副图像做出些许改变,例如创建一幅图,在图中创建一个绘图区域,在绘图区域中添加一条线等等。在matplotlib.pyplot中,各种状态通过函数调用保存起来,以便于可以随时跟踪像当前图像和绘图区域这样的东西。绘图函数是直接作用于当前axes(matplotlib中的专有名词,图形中组成部分,不是数学中的坐标系。)

    2.热力图

    查看数据表中多个特征两两的相似度

    2.1 函数接口

    import seaborn as sns

    seaborn.heatmap(data, vmin=None, vmax=None,cmap=None, center=None, robust=False, annot=None, fmt=’.2g’, annot_kws=None,linewidths=0, linecolor=’white’, cbar=True, cbar_kws=None, cbar_ax=None,square=False, xticklabels=’auto’, yticklabels=’auto’, mask=None, ax=None,**kwargs)

    2.1.1 输入数据

    data: 矩阵数据集,可以是numpy的数组(array),也可以是pandas的DataFrame。如果是DataFrame,则df的index(行标)/column(列标)信息会分别对应到heatmap的columns和rows,即pt.index是热力图的行标,pt.columns是热力图的列标

    2.1.2 热力图矩阵块颜色设置

    vmin\vmax: 热力图的颜色取值最大和最小范围,默认是根据data数据表里的取值确定

    cmap: 从数字到色彩空间的映射,取值是matplotlib包里的colormap名称或颜色对象,或者表示颜色的列表;改参数默认值:根据center参数设定

    center: 数据表取值有差异时,设置热力图的色彩中心对齐值;通过设置center值,可以调整生成的图像颜色的整体深浅;设置center数据时,如果有数据溢出,则手动设置的vmax、vmin会自动改变

    robust: 默认取值False;如果是False,且没设定vmin和vmax的值,热力图的颜色映射范围根据具有鲁棒性的分位数设定,而不是用极值设定

    2.1.3 矩阵块注释参数

    annot: 矩阵块是(True)否(False)写入数据。如果是矩阵,在热力图每个方格写入该矩阵对应位置数据

    fmt: 字符串格式代码,矩阵上标识数字的数据格式,比如保留小数点后几位数字

    annot_kws: 默认取值False;如果是True,设置热力图矩阵上数字的大小颜色字体,matplotlib包text类下的字体设置

    2.1.4 矩阵块间隔与间隔线

    linewidths:定义热力图里“表示两两特征关系的矩阵小块”之间的间隔大小(块之间的间隔)

    linecolor:切分热力图上每个矩阵小块的线的颜色,默认值是’white’(切分矩阵块的线的颜色)

    2.1.5 侧边颜色刻度条设置

    cbar: True.矩阵侧边绘制颜色刻度条

    cbar_kws: 侧边颜色刻度条字号,字体,颜色等的设置

    cbar_ax: 侧边颜色条位置设置

    2.1.6 其他设置

    square: 设置热力图矩阵小块形状,默认值是False

    xticklabels, yticklabels: xticklabels控制每列标签名的输出;yticklabels控制每行标签名的输出。默认值是auto。如果是True,则以DataFrame的列名作为标签名。如果是False,则不添加行标签名。如果是列表,则标签名改为列表中给的内容。如果是整数K,则在图上每隔K个标签进行一次标注。 如果是auto,则自动选择标签的标注间距,将标签名不重叠的部分(或全部)输出

    mask: 控制某个矩阵块是否显示出来。默认值是None。如果是布尔型的DataFrame,则将DataFrame里True的位置用白色覆盖掉

    ax: 设置作图的坐标轴,一般画多个子图时需要修改不同的子图的该值
    **kwargs:All other keyword arguments are passed to ax.pcolormesh

    2.2 实战代码(特征筛选)

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    
    
    # ====热力图
    data = pd.read_csv("data/all_data_standard.csv", encoding="utf-8")
    data.drop_duplicates()
    data.columns = [i for i in range(data.shape[1])]
    
    # 计算两两属性之间的皮尔森相关系数
    corrmat = data.corr()
    f, ax = plt.subplots(figsize=(12, 9))
    
    # 返回按“列”降序排列的前n行
    k = 16
    cols = corrmat.nlargest(k, data.columns[15]).index
    
    # 返回皮尔逊积矩相关系数
    cm = np.corrcoef(data[cols].values.T)
    sns.set(font_scale=1.25)
    hm = sns.heatmap(cm, cbar=True, annot=True, square=True, fmt=".2f", annot_kws={"size": 10}, yticklabels=cols.values, xticklabels=cols.values)
    
    plt.ylabel("features", fontsize=15)
    plt.xlabel("features", fontsize=15)
    plt.title("Thermal map", fontsize=15)
    plt.show()

    3.雷达图(聚类特征描述)

    3.1 雷达图说明

    1.雷达图作用是把信息在多个轴上进行评估,从而知道哪个轴数据表现优秀

    2.还可用于对聚类后结果的特征描述。

    3.2 函数接口

    正常的plot图像不作过多解释,直接上代码

    3.3 雷达图方法一

    import pandas as pd
    import numpy as np
    import seaborn as sns
    From sklearn.cluster import KMeans
    
    
    # ==========绘制聚类结果雷达图
    df_features = pd.read_csv("real_data.csv", encoding="utf-8")
    
    # 构建聚类模型
    estimater = KMeans(n_clusters=3)
    estimater = estimater.fit(X=data)
    
    # 统计样本属性个数
    N = len(estimater.cluster_centers_[0])
    
    # 将360度N等分,注意:要首位相接
    angles = np.linspace(0, 2*np.pi, N, endpoint=False)
    angles = np.concatenate((angles, [angles[0]]))
    
    # 画布上构建子图
    fig = plt.figure(figsize=(7, 7))
    ax = fig.add_subplot(111, polar=True)
    Sam = ["r", "g", "b"]
    
    # 待显示的图例标签
    lab = []
    
    # 遍历所有聚类中心
    for i in range(len(estimater.cluster_centers_)):
        values = estimater.cluster_centers_[i]
        features = data.columns
        values = np.concatenate((values, [values[0]]))
        ax.plot(angles, values, Sam[i], linewidth=2)
    
        # 颜色填充
        # ax.fill(angles, values, alpha=0.25)
    
        # 摆放特征名称
        ax.set_thetagrids(angles*180/np.pi, features)
    
        # 显示轴网络
        ax.grid(True)
        lab.append("customer"+str(i))
    plt.title("title")
    
    # 显示图例
    plt.legend(lab)
    plt.show()
    
    

    3.4 雷达图方法二

    pygal

    一个python svg图形绘图库。免费的第三方库,可自由进行修改,但没有任何保证。内部提供的是一些绘图的接口(条形图,堆积条形图,点状图,漏斗图,箱型图,仪表图,实心仪表,直方图,水平条形图,水平堆积条形图,线性图,水平线图,堆积线图,水平堆积线图,饼图,水平金字塔图,垂直金字塔图,雷达图,日期横坐标xy图,DateTime横坐标xy图,时间横坐标xy图,TimeDelta横坐标xy图,树状图,XY线图,),可直接进行绘图,相对于pyplot要简便一些。

    import matplotlib.pyplot as plt
    import pandas as pd
    import pygal as pg
    
    
    centers = [[55.46, 0.82, 30.06],
               [10.33, 0.88, 30.18],
               [10.71, 0.75, 29.84]]
    df_features = pd.DataFrame(centers)
    df_features.columns = ["a", "b", "c"]
    df_features.index = ["aa", "bb", "cc"]
    
    # 构建雷达图对象
    radar_chart = pg.Radar()
    
    # 设置雷达图标题
    radar_chart._title = "Rader graph"
    
    # 设置雷达图x轴标签
    radar_chart.x_labels = df_features.index
    
    # 在图中添加对象
    radar_chart.add("customer1", centers[0])
    radar_chart.add("customer2", centers[1])
    radar_chart.add("customer3", centers[2])
    
    # 将图写入文件(可浏览器打开)
    radar_chart.render_to_file('bar_chart.svg')

    4.箱线图

    https://www.jianshu.com/p/b2f70f867a4a

    4.1 箱线图简介

    箱线图是一种用作显示一组数据分散情况的统计图。常用于品质管理。主要用于反应原始数据的分布特征,还可进行多组数据分布特征的比较。从箱线图中可找出最大值最小值中位数下四分位数(25%)上四分位数(75%)异常值

    注意:区间[Q1-1.5△Q, Q3+1.5△Q]之外的数据值被认为是异常值,应当被忽略。

    4.2 第一种实现方式

    通过matplotlib.pyplot实现

    plt.boxplot(x, whis=None, labels=None)

    参数:

    x: 输入数据。数组(array)或容器的序列(a sequence of vectors)

    whis: 浮点型,序列、字符串(默认为1.5)。调整的是判断异常值式(Q3-Q1)所占的权重

    labels: 序列(sequence)。并且,长度必须与数据集的维度相同。

    import matplotlib.pyplot as plt
    import pandas as pd
    
    
    array = dataFile.iloc[:, 10:15].values
    
    plt.rcParams["axes.unicode_minus"] = False
    plt.rcParams["font.sans-serif"] = "SimHei"
    
    plt.boxplot(x=array, labels=["one", "two", "three", "four", "five"], whis=1.5)
    plt.xlabel("Attribute")
    plt.ylabel("Score")
    plt.show()

    4.3 第二种实现方式

    pandas自带的画图工具(图片感觉不美观)

    DataFrame.boxplot(grouped, subplots=True, column=None, fontsize=None, rot=0, grid=True, ax=None, figsize=None, layout=None, **kwds)

    plt.show()

    参数:

    column: 待绘制箱线图的属性列。列名(字符串)、列表、容器。

    fontsize: 图中文字大小。整形(int)或字符型(str)

    rot: xlabels倾斜的角度。整形(int: 正负均可)、浮点型(float)、字符串(str)

    grid: 是否显示图片中的网格。默认为True

    figsize: 图片大小。元组 -> (长,宽)

    import pandas as pd
    import matplotlib.pyplot as plt
    
    
    dataFile = pd.read_csv("dataTest.csv", header=None, prefix="V")
    dataFile = dataFile.iloc[:, 10:15]
    dataFile.boxplot(column="V10", fontsize="22", rot=45)
    plt.show()

    4.4 第三种方式实现

    from pylab import *

    boxplot(x, whis=None, labels=None)

    参数:

    x: 绘制箱线图的属性列数据。array

    whis: 判断异常值时的权重 [Q1-whis * △Q, Q3+whis * △Q]

    labels: xlabels的名称。列表,长度应当与绘图数据的属性个数相同

    show()

    from pylab import *
    import matplotlib.pyplot as plt
    import pandas as pd
    
    
    dataFile = pd.read_csv("dataTest.csv", header=None, prefix="V")
    dataFile = dataFile.iloc[:, 10:15]
    
    boxplot(dataFile.values, whis=0.5, labels=["V10", "V11", "V12", "V13", "V14"])
    show()

    5. 平行坐标

    平行坐标是一种比较常见的可视化方法,用于对高纬集合和多元数据的可视化。平行坐标为了表示在高纬空间中的一个点集,在N条平行的线的背景下(一般这N条线都竖直且等距),一个在高纬空间的点被表示为一条拐点在N条平行坐标轴的折线,在第K个坐标轴的位置就表示这个点在第K纬的值,平行坐标是信息可视化的一种重要技术。

    import matplotlib.pyplot as plt
    import pandas as pd
    import numpy as np
    
    
    df_features = pd.read_csv("dataTest.csv", encoding="utf-8", header=None, prefix="V")
    
    summary = df_features.describe()
    minRings = -1
    maxRings = 99
    nrows = 10
    
    for i in range(nrows):
        dataRow = df_features.iloc[i, 1:10]
        labelColor = (df_features.iloc[i, 10] - minRings)/(maxRings - minRings)
        # dataRow.plot(colors=plt.cm.RdY1Bu(labelColor), alpha=0.5)
        dataRow.plot(alpha=0.5)
    
    plt.xlabel("Attribute")
    plt.ylabel("Score")
    plt.show()

    6.3D表面图

    6.1 所需第三方库

    from mpl_toolkits.mplot3d import Axes3D

    mplot3d模块中的Axes3D绘图类

    from matplotlib.ticker import LinearLocator, FormatStrFormatter

    ticker模块主要提供“刻度的划分”和“刻度值的格式化”

    matplotlib包中ticker模块中LinearLocator类(刻度划分)和FormatStrFormatter类(使用“%”来格式化轴刻度值)from matplotlib import cm

    matplot内置的色彩映射模块

    6.2 重点函数

    ①ax = Axes3D(fig):将matplotlib.figure.Figure对象转换成rect=[left, bottom, width, height]的3D对象

    ②np.meshgrid(*xi, indexing, sparse, copy, **kwargs):将坐标向量转换成坐标矩阵

    【参数】

    *xi:表示网格坐标的一维数组

    indexing:设置输出索引的形式。(笛卡尔("xy")和矩阵("ij"))

    sparse: 默认为False.若为True,则为节省内存返回稀疏网格

    copy: 默认为True.若为False, 则为节省内存返回原始数组。(sparse=False, copy=False很有可能返回非连续数组)

    【调整结果展示】

    ①x1:向下拓展

    ②x2:向右拓展

    ③组合成(x1, x2)坐标,并将其定位;

    ④将(x1, x2)带入f中求解出对应的Z轴数值

    ③Axes3d.plot_surface(x, y, z, rcount, ccount, rstride, cstride, color, cmap, facecolors, norm, vmin, vmax, shade, *kwargs): 创建表面图

    【参数】

    x, y, z: 二维数组

    rcount, ccount: 每个方向上的最大样本数。默认为50

    rstride, cstride: 同rcount 和 ccount的作用都是为了精简坐标轴不同方向的样本数量,因此不能同时设置。默认为10.

    color: 表面贴片的颜色surface patches

    cmap: 表面贴片的颜色映射 Colormap

    facecolors: 每个小块的颜色(list形式)

    norm, vmin, vmax: 颜色映射标准化,标准化的下限和上限

    shade: 是否给表面的颜色打上阴影

    linewidth: 线条的宽度

    antialiased: 是否平滑(True or False)

    # ==========python绘制3D表面图(3维图)
    # class Axes3D: 3D绘图类
    # module ticker: 提供 ”刻度的定位“ 及 ”刻度的格式化“
    # class LinearLocator: 刻度划分
    # class FormatStrFormatter: 使用“%”来格式化轴刻度值
    # module cm: 内置的色彩映射模块
    from mpl_toolkits.mplot3d import Axes3D
    import matplotlib.pyplot as plt
    from matplotlib.ticker import LinearLocator, FormatStrFormatter
    import numpy as np
    from matplotlib import cm
    
    
    fig = plt.figure(figsize=(10, 8))
    
    # 将matplotlib.figure.Figure对象转换成rect=[left, bottom, width, height]的3D对象
    ax = Axes3D(fig=fig)
    
    X = np.arange(-5, 5, step=0.1)
    Y = np.arange(-5, 5, step=0.1)
    
    # np.meshgrid: 坐标向量转变为坐标矩阵
    X, Y = np.meshgrid(X, Y, indexing="xy", sparse=True, )
    R = np.sqrt(X**2 + Y**2)
    Z = np.cos(R)
    
    # ax.plot_surface: 创建表面图
    # ax.set_zlim: 设置3D图中z轴的数值
    # ax.zaxis: 初始化3D轴
    # LinearLocator(numticks=10): 将z轴刻度划分为10部分
    # FormatStrFormatter("%.2f"):z轴刻度值表里路两位小数
    surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=plt.get_cmap("rainbow"), linewidth=0, antialiased=False)
    ax.set_zlim(-1.01, 1.01)
    ax.xaxis.set_major_locator(LinearLocator(numticks=10))
    ax.xaxis.set_major_formatter(FormatStrFormatter("%.1f"))
    ax.yaxis.set_major_locator(LinearLocator(numticks=10))
    ax.yaxis.set_major_formatter(FormatStrFormatter("%.1f"))
    ax.zaxis.set_major_locator(LinearLocator(numticks=10))
    ax.zaxis.set_major_formatter(FormatStrFormatter("%.1f"))
    
    # fig.colorbar: 创建颜色栏
    # shrink: 颜色条长度的收缩比
    # aspect: 颜色条宽度
    fig.colorbar(surf, aspect=5, shrink=0.5)
    plt.show()

    7.绘制混淆矩阵

    混淆矩阵是机器学习当中一中评价模型分类效果的方法,通过决策矩阵就可计算出单分类的准确率(accuracy)、查全率、查准率、召回率(recall_score)和F1-score等。

    from sklearn.metrics import confusion_matrix    # 生成混淆矩阵函数
    import matplotlib.pyplot as plt    # 绘图库
    import numpy as np
    import tensorflow as tf
    
    
    def plot_confusion_matrix(cm, labels_name, title):
        # 归一化
        cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]
        # 在特定的窗口上显示图像
        plt.imshow(cm, interpolation='nearest')
        plt.title(title)
        
        # 标度条
        plt.colorbar()
    
        num_local = np.array(range(len(labels_name)))
        # 设定x轴标签
        # rotation:为标签的旋转角度   
        plt.xticks(num_local, labels_name, rotation=90)
        plt.yticks(num_local, labels_name)  
        plt.ylabel('True label')    
        plt.xlabel('Predicted label')
    
        plt.show()
    
    
    # 此处混淆矩阵为模型实际生成值,因此,此处只给出模型的计算结果
    pred_y = session.run(tf.argmax(y_, 1), feed_dict={X: test_x})
    cm = confusion_matrix(np.argmax(test_y, 1), pred_y,)
    print(cm)
    # [[100   1   0   1   6   0   0]
    #  [  2 111   3   0   2   1  24]
    #  [  0   2  68   5   4   3   2]
    #  [  2   0   1 120   7  26   0]
    #  [  2   5   3   2 120  11  14]
    #  [  2   0   2  12   8 115   1]
    #  [  2  25   0   1  14   4 302]]
    
    # 调用绘制混淆矩阵的函数
    plot_confusion_matrix(cm, labels_name, "HAR Confusion Matrix")
    

     

     8.饼状图

    import matplotlib.pyplot as plt
    import numpy as np
    
    
    plt.rcParams["font.sans-serif"] = ["SimHei"]
    plt.rcParams["axes.unicode_minus"] = False
    
    labels = ["鸭子", "狗子", "牛子", "猪子"]
    values = [15, 30, 45, 10]
    explode = (0, 0.1, 0, 0)
    
    plt.figure(figsize=(6, 3))
    plt.pie(x=values, explode=explode, labels=labels, autopct="%1.1f")
    
    # 获取或设置轴属性的便捷方法
    # equal: 保持图形的形状,不会随着x或者y的拉伸而拉伸
    plt.axis("equal")
    
    plt.show()

    9.3D散点图

    from mpl_toolkits.mplot3d import Axes3D

    mplot3d模块中的Axes3D绘图类

    from matplotlib.ticker import LinearLocator, FormatStrFormatter

    ticker模块主要提供“刻度的划分”和“刻度值的格式化”

    matplotlib包中ticker模块中LinearLocator类(刻度划分)和FormatStrFormatter类(使用“%”来格式化轴刻度值)from matplotlib import cm

    matplot内置的色彩映射模块

    # ! /usr/bin/env python
    # coding:utf-8
    # python interpreter:3.6.2
    # author: admin_maxin
    import matplotlib.pyplot as plt
    import pandas as pd
    import numpy as np
    from sklearn.cluster import KMeans
    from sklearn import preprocessing
    from mpl_toolkits.mplot3d import Axes3D
    from matplotlib import cm
    plt.rcParams["font.sans-serif"] = ["SimHei"]  # 设置显示字体
    plt.rcParams["axes.unicode_minus"] = False  # 设置正常显示符号
    
    data = pd.read_csv("data1.csv", encoding="utf-8", header=0, index_col=0)
    X = data
    # X = preprocessing.minmax_scale(X)
    # X = pd.DataFrame(X)
    
    # 构造聚类模型
    estimator = KMeans(n_clusters=3)
    estimator.fit(X)
    label_pred = estimator.labels_
    
    # 绘制k-means结果
    x0 = X[label_pred == 0]
    x1 = X[label_pred == 1]
    x2 = X[label_pred == 2]
    # x3 = X[label_pred == 3]
    
    # 绘制三维散点图
    fig = plt.figure()
    # ax = fig.add_subplot(111, projection='3d')
    ax = Axes3D(fig)
    
    # x,y,s要求是list等的array_list类型的数据
    ax.scatter(list(x0.iloc[:, 0]), list(x0.iloc[:, 1]), list(x0.iloc[:, 2]), c="red", marker='o', label='label0')
    ax.scatter(list(x1.iloc[:, 0]), list(x1.iloc[:, 1]), list(x1.iloc[:, 2]), c="green", marker='*', label='label1')
    ax.scatter(list(x2.iloc[:, 0]), list(x2.iloc[:, 1]), list(x2.iloc[:, 2]), c="blue", marker='+', label='label2')
    # ax.scatter(list(x3.iloc[:, 0]), list(x3.iloc[:, 1]), list(x3.iloc[:, 2]), c="pink", marker='x', label='label3')
    
    ax.set_xlabel('属性个数')
    ax.set_ylabel('标签个数')
    ax.set_zlabel('样本量')
    
    data["label"] = "0"
    for i in range(data.shape[0]):
        data.iloc[i, 3] = list(estimator.labels_)[i]
    data.to_csv("mydata.csv", sep=",", header=True, index=True, encoding="utf-8")
    
    plt.legend()
    plt.show()

     

    展开全文
  • 绘制基础图形 饼图 示例:数据集VADeaths展示不同人群...箱线图(boxplot)也称箱须,其绘制须使用常用的统计量,能提供有关数据位置和分散情况的关键信息,尤其在比较不同特征时,更可表现其分散程度差异。下图标
  • 直接Ⅱ结构是一种常用的IIR形式,它基于对式(1)的一种特定解读。设N阶IIR的传递函数为H(z),其中,  矩阵A的元素(i,j)为状态xj[k]与xi[k+1]之间的路径增益,bi为输人与xi[k+1]之间的路径增益,ci为xi[k]...
  • 读取图像:用imread函数读取图像文件,文件格式可以是TIFF、JPEG、GIF、BMP、PNG等。...如果图片是彩色的,可以用rgb2gray转换成灰度:>> f = rgb2gray(f);然后可以用size函数看图像的大小>> siz...
  • 3D图形:矩阵的相关知识

    千次阅读 2021-01-18 11:28:55
    矩阵的基本概念 矩阵其实就是向量的数组.向量算的上是特殊的一维矩阵.下面说一下几种特殊的方阵(行数和列数都相同的矩阵). 对角矩阵 如果所有的飞对角线元素都为0,那么这样的矩阵称之为***对角矩阵***. ######单位...
  • MATLAB矩阵 及图像函数

    千次阅读 2021-04-18 13:45:39
    MATLAB之矩阵的基本运算1.1 数值矩阵的生成1.实数值矩阵输入输入矩阵方法:用键盘上方括号“ [ ]”代替矩阵括号。矩阵数据在方括号内按行输入,同一行相邻元素用空格(或逗号)隔开,相邻两行用分号“;”隔开。 例如...
  • 显然cv::SparseMat存储更为节省空间,典型使用cv::SparseMat的例如直方数据的存储。 1 创建与初始化cv::Mat  cv::Mat用于密集连续的n维数据存储。成员变量: flags: 数据内容标识; dims: 数据维数...
  • Matlab 矩阵运算

    千次阅读 2021-04-22 03:29:59
    Copyright 2008说明:这一段时间用Matlab做了LDPC码的性能仿真,过程中涉及了大量的矩阵运算,本文记录了Matlab中矩阵的相关知识,特别的说明了稀疏矩阵和有限域中的矩阵。Matlab的运算是在矩阵意义下进行的,这里所...
  • 在查阅相关资料,经过一番折腾后,我了解到一个名为Efficient Java Matrix Library(EJML,高效矩阵运算包)的第三方库,并将其运用到了我的一个机器学习实验代码中(为什么不用python,我也不知道)。现在对我所...
  • 的定义 的存储结构 邻接矩阵 邻接表 对比邻接矩阵与邻接表 十字链表 邻接多重表   前言 在线性表中,数据元素之间仅线性关系,每个数据元素只有一个直接前驱和一个直接后继; 在树形结构中,数据...
  • 1.numpy(高效多维数据表示)NumPy数组可以将许多数据处理任务表述为简洁的数组表达式,否则需要编写循环。用数组表达式代替循环的做法...np.meshgrid()函数接受两个一维数组,并产生两个二维矩阵,对应于两个数组中所...
  • 矩阵相关定义性质全总结

    万次阅读 多人点赞 2020-04-27 10:29:56
    矩阵最全相关定义性质总结 ...能够见到的大多数文章还是以对矩阵的介绍为主,我想可能很多人最需要的是了解矩阵哪些细分(比如矩阵相似、矩阵合同),以及这些细分的充要、必要、充分条件,还有这些...
  • BCG矩阵—波士顿矩阵

    千次阅读 2021-06-29 11:58:33
    BCG矩阵01 | BCG矩阵02 | 四分象限03 | 波士顿矩阵绘制04 | 案例分析1.案例一2.案例二 01 | BCG矩阵 BCG矩阵是一个2 X 2的矩阵,是一个跟企业市场增长率和市场份额有关的数据分析模型。 横轴是相对市场占有率(以...
  • 模型评估通常作为建模的最后一步,用于评估模型效果,判别该模型是否...连续性预测模型常用的是`MAPE/RMSE`,而分类常用`AUC/accuracy/recall/specify`等等。本文将介绍常用的评估指标,并对应指出各指标的不同称呼。
  • 拉普拉斯矩阵介绍

    千次阅读 2019-12-18 10:24:51
    拉普拉斯矩阵是图论中用到的一种重要矩阵,给定一个n个顶点的 G=(V,E),其拉普拉斯矩阵被定义为 L = D-A,D其中为的度矩阵,A为的邻接矩阵。例如,给定一个简单的,如下(例子来自wiki百科): 把...
  • 无向常用的描述方法都是基于邻接的方式:邻接矩阵、邻接链表、邻接数组 一、邻接矩阵 邻接矩阵的定义 一个n顶点G=(V,E)的邻接矩阵是一个n*n的矩阵(假设是A),其中每个元素都是0或1.假设V={1,2,3,...,n} ...
  • 一个二维的滤波器矩阵(也就是卷积核)和一个要处理的二维图像;对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值,这样就完成了滤波过程。 不难发现,用3...
  • OpenCV Mat矩阵(图像Mat)初始化及访问方法

    万次阅读 多人点赞 2019-06-20 17:39:50
    文章详细介绍了OpenCV Mat矩阵(图像Mat)初始化及访问方法
  •  例如: CV_8UC1 表示8位无符号单通道矩阵, CV_32SC2表示32位符号双通道矩阵.  例: CvMat* M = cvCreateMat(4,4,CV_32FC1); 9)逐点赋值方式初始化 CvMat* mat = cvCreateMat( 2, 2,CV_64...
  • 理解矩阵矩阵背后的现实意义

    千次阅读 多人点赞 2018-01-15 16:28:19
    这是很早以前已经看过的,最近无意中又把保存的文章翻出来时,想起很多朋友问过矩阵,虽对矩阵似懂非懂,但却很想弄懂它,希望这几篇文章能帮你一下,故转之: 线性代数课程,无论你从行列式入手还是直接从矩阵入手...
  • 多行排列(共同标号)3.3 技巧三:多公式组合3.4 技巧四:矩阵3.4.1 矩阵的输入3.4.2 小型矩阵3.4.2 大型矩阵排版数组4、特殊符号的输入4.0 常用字符的输入举例4.1 公式中的正体文字输入4.2 数学符号的常用使
  • 矩阵和图像操作 表3-3列出了一些操作矩阵图像的函数,其中的大部分对于图像处理非常有效。它们实现了图像处理中的基本操作,例如对角化、矩阵变换以及一些更复杂的诸如计算图像的统计操作。 【47】 表
  • 常用的是im2double函数,将 uint8图像转为double类型,范围为0-1,如果是255的图像,那么255转为1,0还是0,中间的做相应改变。 MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double。因此 I2=im2...
  • 常用数据类型numeric数值char字符logical逻辑––cell单元、细胞、元胞struct结构数值整数:带符号和无符号浮点数:单精度和双精度在缺省(默认)状态下,Matlab 将所有的数都看作是双精度的浮点数。双精度数值变量...
  • 9、求矩阵的逆矩阵 10、多项式的乘法运算 11、多项式除法 12、求一个向量的最大值 13、求矩阵的最大值和最小值 14、求和与求积 15、平均值、标准方差 16、相关系数 17、排序 18、多项式的求导 19、多项式...
  • 特殊情况两个,一是单一元素的标量,二是只有一行或者一列的矩阵,也就是向量。MATLAB也其他储存数值和非数值数据的方式,但是对于初学者来说,最好是将所有的情况都考虑为矩阵,这样更容易使用。MATLAB的设计.....
  • 矩阵论】矩阵的广义逆

    万次阅读 多人点赞 2020-11-16 14:37:50
    给出矩阵广义逆的定义(MP方程)以及相关定理,利用广义逆解决最小二乘问题。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 49,950
精华内容 19,980
热门标签
关键字:

常用的矩阵图有什么型