首页 > 其他分享 >MATLAB图论工具箱(哪有什么工具箱,就只是一堆函数而已)

MATLAB图论工具箱(哪有什么工具箱,就只是一堆函数而已)

时间:2023-10-06 23:12:05浏览次数:35  
标签:node 图论 有向图 对象 节点 MATLAB 计算 工具箱 图形

MATLAB 图论工具箱

图论基础

Matlab图论工具箱提供了构建、操作和分析图形的函数和工具。在Matlab图论工具箱中,可以使用以下基本数据结构:

  • graph: 无向图。
  • digraph: 有向图。

可以使用以下函数创建一个图或有向图:

  • graph: 创建一个无向图。
  • digraph: 创建一个有向图。
% 创建无向图
G = graph(A);
% 创建有向图
G = digraph(A);

其中,A 是一个邻接矩阵或稀疏矩阵,表示图的连接关系。

也可以使用以下函数创建一个带权图或带权有向图:

  • graph: 创建一个带权无向图。
  • digraph: 创建一个带权有向图。
% 创建带权无向图
G = graph(A, weights);
% 创建带权有向图
G = digraph(A, weights);

其中,weights 是一个权重矩阵或向量,表示图中每条边的权重。

图形绘制

可以使用以下函数绘制一个图或有向图:

  • plot: 绘制图形。
  • plot: 绘制有向图。
% 绘制图形
plot(G);
% 绘制有向图
plot(G, 'Layout', 'layered');

其中,Layout 是布局选项,用于指定如何排列图形中的节点和边。

图形分析

可以使用以下函数进行图形分析:

  • degree: 返回节点的度。
  • indegree: 返回节点的入度。
  • outdegree: 返回节点的出度。
  • shortestpath: 返回两个节点之间的最短路径。
  • distances: 返回从一个节点到所有其他节点的距离。
  • bfs: 返回广度优先搜索结果。
  • dfs: 返回深度优先搜索结果。
% 计算节点度数
d = degree(G);
% 计算节点入度
in = indegree(G);
% 计算节点出度
out = outdegree(G);
% 计算最短路径
p = shortestpath(G, s, t);
% 计算节点距离
dist = distances(G, s);
% 广度优先搜索
[tree, pred, order] = bfs(G, s);
% 深度优先搜索
[tree, pred, order] = dfs(G, s);

其中,st 分别表示起始节点和目标节点。

图形操作

可以使用以下函数进行图形操作:

  • subgraph: 返回指定节点和边的子图。
  • rmnode: 删除指定节点。
  • rmedge: 删除指定边。
  • addnode: 添加新节点。
  • addedge: 添加新边。
% 获取子图
subG = subgraph(G, nodes, edges);
% 删除节点
G = rmnode(G, node);
% 删除

常用函数

  1. graph:创建图形对象。
G = graph(A) % 用邻接矩阵A创建一个无向图形对象G
  1. digraph:创建有向图形对象。
G = digraph(A) % 用邻接矩阵A创建一个有向图形对象G
  1. plot:绘制图形对象的图形。
plot(G) % 绘制图形对象G的图形
  1. numnodes:计算图形对象的节点数量。
n = numnodes(G) % 计算图形对象G的节点数量
  1. numedges:计算图形对象的边数量。
m = numedges(G) % 计算图形对象G的边数量
  1. degree:计算图形对象的每个节点的度数。
d = degree(G) % 计算图形对象G的每个节点的度数
  1. neighbors:查找图形对象中一个节点的相邻节点。
adj = neighbors(G, node_idx) % 查找图形对象G中节点 node_idx 的相邻节点
  1. distances:计算图形对象中节点之间的最短路径。
D = distances(G) % 计算图形对象G中节点之间的最短路径
  1. shortestpath:查找图形对象中两个节点之间的最短路径。
path = shortestpath(G, node_idx1, node_idx2) % 查找图形对象G中节点 node_idx1 和 node_idx2 之间的最短路径
  1. centrality:计算图形对象中每个节点的中心性指标。
c = centrality(G, 'centrality_type') % 计算图形对象G中每个节点的中心性指标,centrality_type 可选参数有 'degree'、'betweenness'、'closeness'、'eigenvector'、'katz'、'pagerank' 等
  1. isconnected:判断图形对象是否是连通图。
isconnected(G) % 判断图形对象G是否是连通图,返回1表示是,0表示否
  1. graphconncomp:计算图形对象的连通分量数量和标签。
[S, C] = graphconncomp(G) % 计算图形对象G的连通分量数量和标签
  1. incidence:计算图形对象的关联矩阵,即边与节点之间的关系。
I = incidence(G) % 计算图形对象G的关联矩阵
  1. minspantree:计算图形对象的最小生成树。
T = minspantree(G) % 计算图形对象G的最小生成树
  1. subgraph:提取图形对象的子图。
G_sub = subgraph(G, node_idx) % 提取图形对象G中以节点 node_idx 为中心的子图
  1. inducedsubgraph:提取图形对象的诱导子图。
G_induced = inducedsubgraph(G, node_idx) % 提取图形对象G中以节点 node_idx 为中心的诱导子图
  1. isomorphism:判断两个图形对象是否同构。
isomorphic = isomorphism(G1, G2) % 判断两个图形对象G1和G2是否同构,返回1表示是,0表示否
  1. ismultigraph:判断图形对象是否是多重图。
ismultigraph(G) % 判断图形对象G是否是多重图,返回1表示是,0表示否
  1. isdirected:判断图形对象是否是有向图。
isdirected(G) % 判断图形对象G是否是有向图,返回1表示是,0表示否
  1. isomorphpref:计算两个图形对象的同构匹配。
p = isomorphpref(G1, G2) % 计算两个图形对象G1和G2的同构匹配,返回的是一个置换矩阵p,用于表示G1和G2之间的同构匹配

标签:node,图论,有向图,对象,节点,MATLAB,计算,工具箱,图形
From: https://www.cnblogs.com/pzxnb/p/17745245.html

相关文章

  • 图论总结
    最小生成树相关次小生成树、生成树边替代对于一条非树边\((u,v)\),它替代树\(u,v\)链上的最大值,对答案的影响最小。用倍增或树链剖分维护。对于一条树边,如果非树边\((u,v)\)满足这条边在链\(u,v\)上,它被满足这个条件的权值最小的边替代对答案的影响最小。把非树边按权值......
  • 【图论】【寻找性质】CF1151E Number of Components 题解
    CF1151E发现每一个\(f(l,r)\)中的连通块总是一条链(一棵树)。那么此时连通块的数量就等于点的数量减去边的数量。先考虑点的总数,一个价值为\(a_i\)的点一定是在\(l\leqslanta_i\)且\(r\geqslanta_i\)的\(f(l,r)\)中才会有一个贡献,根据乘法原理,它会产生\(a_i\time......
  • Matlab-多y轴图片绘制
    %%多Y轴图%%MadebyLwcahin2023-06-26(公众号:Lwcah)%%公众号:Lwcah%%知乎、B站、小红书、抖音同名账号:Lwcah,感谢关注~%%更多MATLAB+SCI绘图教程敬请观看~%%清除环境变量closeall;clearall;clc;%%1行1列-定义整幅图出现的在电脑屏幕上的位置以及长和宽figure......
  • [图论]判环的几种方法
    判环的几种方法拓扑排序判环对于有向图://有向图环判断#include<bits/stdc++.h>usingnamespacestd;vector<int>edge[10001];intn,m,d[10001];queue<int>q;inlinevoidTopoSort(){ intcnt=0; for(inti=1;i<=n;i++) { if(!d[i]) { q.push(i); ......
  • 线性系统与信号:MATLAB课时11节
    MATLAB课时B:初步操作  MATLAB课时1:使用函数  MATLAB课时2:M文件  MATLAB课时3:离散时间信号与系统  MATLAB课时4:连续时间滤波器  MATLAB课时5:离散时间IIR滤波器  MATLAB课时6:傅里叶级数应用   MATLAB课时7:傅里叶变换   MATLAB课时8:离散......
  • Matlab : 数理统计
    统计描述性统计(DescriptiveStatistics)描述性统计主要研究数据的中心趋势(CentralTendency)和变异(Variation).中心趋势(CentralTendency)函数作用mean()计算平均值median()计算中位数mode()计算众数prctile()计算百分位数max()计算最大值min()计算最小值X=[13555579......
  • 正弦函数在matlab中实现
    %正弦函数在MATLAB中如何实现%1.sin(45°)注意:参数值需要用“弧度”去定义>>x=sin(45*pi/180);%2.MATLAB中注意:开方-sqrt(x),指数函数-exp(x)>>y=sqrt(2*exp(x+0.5)+1); %3.MATLAB中几元几次方程的写法:2x+3y-z=2%8x+2y+3z=4%45x+3y+9z=23<<A=[2,3,-1;8,2,3;45,3,9];%......
  • Matlab : 符号表达式
    MATLAB强大的符号运算基于符号运算工具箱,具体请见其 官方文档.创建符号变量创建符号数字使用sym函数可以创建符号数字.使用符号数字可以精确地保存无理数,不会产生误差.sym(1/3) %得到1/31/3 %得到0.3333将无理数保存为符号数字可以避免将其转换为浮点数的误差:使用符号数......
  • m基于16QAM调制的音频信号同步接收器matlab仿真,包括gardner符号同步,载波同步以及CMA
    1.算法仿真效果matlab2022a仿真结果如下:锁定过程的星座图变化情况:定时收敛曲线:载波同步收敛曲线:2.算法涉及理论知识概要基于16QAM(QuadratureAmplitudeModulation)调制的音频信号同步接收器是一个复杂但高效的通信系统。该系统主要涉及三个关键部分:Gardner符号同步、载波......
  • m基于16QAM调制的音频信号同步接收器matlab仿真,包括gardner符号同步,载波同步以及CMA
    1.算法仿真效果matlab2022a仿真结果如下: 锁定过程的星座图变化情况:    定时收敛曲线:   载波同步收敛曲线:   2.算法涉及理论知识概要         基于16QAM(QuadratureAmplitudeModulation)调制的音频信号同步接收器是一个复杂但高效的通信......