基于MATLAB的贝叶斯网络工具箱BNT的安装和使用_2

一、图的邻接矩阵(Adjacency Matrix)表示

拓扑网络图中的两个节点相邻或邻接,是指节点之间至少有一条边。把图转换为邻接矩阵的表示方式,主要是确定相邻节点边的数目。有如下参考图

image

图中共有三个节点,需要建立3*3的邻接矩阵,矩阵中元素填充方法:每一列、每一行各个节点对应,如果(Vi,Vj)邻接那么第i行第j列的元素(cell)置为1,否者置为0,

得到的结果为:

image

对于无向图来讲,其邻接矩阵是对称的。推荐阅读http://mathworld.wolfram.com/AdjacencyMatrix.html

二、MATLAB中矩阵数据的表示

  1. 变量命名,matlab中变量名字以字母开头,后接字母、数字、下划线,例如my_variable_1,严格区分大小写的
  2. 变量赋值,形式: 变量 = 表达式,其结果是一个矩阵,像python语言一样,若输入的指定过长可以用 … 进行连接,不要对预定义变量进行赋值
  3. clear命令删除工作空间的变量,who、whos查看工作空间驻留的变量,clc清屏
  4. 矩阵(数组)是matlab数据存储的基本单元

下面给出矩阵的创建方式

  • 直接输入数据,

    将矩阵的元素用方括号扩起来[],按矩阵行的顺序输入元素,同一行的元素用空格或者逗号隔开,不同行之间用分号隔开。如果只是输入一行就形了数组(或称作向量),其中的元素(cell)是任何matlab表达式,看下图 

image

  • 利用m文件创建,参考官方文档
  • 利用:冒号建立一个数组(向量),一般格式为e1 : e2 : e3,其中e1为初始值,e2为步长,e3为终止值,看图

image

  • 采用定数线性采样函数产生向量,调用格式x = linspace(a,b,n),看下图

image

  • 采用定数的对数采样函数来产生向量,调用格式 y = logspace(a,b,n)
  • 利用matlab函数来产生矩阵
  1. zeros()函数,创建零矩阵
  2. ones()函数,创建元素全部为1的矩阵
  3. rand()函数,创建随机矩阵,元素值全部在0~1之间
  4. eye()函数创建单位矩阵
  5. randn()函数产生均值为0,方差为1的标准正态分布随机矩阵

注意:()中的参数,输入(m,n)表示产生一个m行n列的矩阵(eye()函数中m=n),m = n则是方阵,如果输入size(A),则产生一个与A大小相同的矩阵

看下面图

image

下面给出矩阵元素的访问:

  1. x(m,n)代表矩阵中第m行第n列的元素
  2. 其中的m,n可以是阵列,例如x([a b c],[x y])代表第a、b、c行中第x、y列中的元素,其实就是矩阵上选出的一块区域,看图

 

image

其他一些特殊矩阵,及其运算参见官方的帮助文档。

 

你可能感兴趣的:(基于MATLAB的贝叶斯网络工具箱BNT的安装和使用_2)