邻接矩阵与关联矩阵的转换及实现
来源:互联网 发布:淘宝切图模块切图失败 编辑:程序博客网 时间:2024/05/01 21:44
【参数说明】
F 表示所给的图的矩阵
W 表示程序运行结束后的结果,即转换后的结果
当 f=0 时,实现邻接矩阵转换为关联矩阵,此时F为邻接矩阵,W为关联矩阵
当 f=1 时,实现关联矩阵转换为邻接矩阵,此时F为关联矩阵,W为邻接矩阵
【matlab program】
无向图
% 无向图的关联矩阵与邻接矩阵的相互转换function W = incandaf(F,f)if f == 0 m = sum(sum(F))/2; % 计算图的边数 n = size(F,1); W = zeros(n,m); k = 1; for i = 1: for j = i:n if F(i,j) ~= 0 W(i,k) = 1; % 给边的始点赋值1 W(j,k) = 1; % 给边的终点赋值1 k = k+1; end end endelseif f == 1 m = size(F,2); n = size(F,1); W = zeros(n,n); for i = 1:m a = find(F(:,i) ~= 0); W(a(1),a(2)) = 1; % 存在边,则邻接矩阵的对应值为1 W(a(2),a(1)) = 1; endelse fprint('please input the right value of f!');endW;
有向图
%% 有向图的关联矩阵和邻接矩阵相互转换function W = mattransf(F,f)if f == 0 m = sum(sum(F)); n =size(F,1); W = zeros(n,m); k = 1; for i = 1:n for j = i:n if F(i,j) ~= 0 W(i,k) = 1; W(j,k) = -1; k = k+1; end end endelseif f == 1 m = size(F,2); n = size(F,1); W = zeros(n,n); for i = 1:m a = find(F(:,i) ~= 0);% if F(a(1),i) == 1% W(a(1),a(2)) = 1; % 存在边,则邻接矩阵的对应值为1% else% W(a(2),a(1)) = 1;% end if isempty(a) ~= 1 for j = 1:length(a) if F(a(j),i) == 1 W(a(1),a(2)) = 1; else W(a(2),a(1)) = 0; end end end endelse fprint('please input the right value of f!');endW;
0 0
- 邻接矩阵与关联矩阵的转换及实现
- 邻接矩阵与关联矩阵
- 图的矩阵与邻接矩阵转换和遍历
- 角速度与旋转矩阵的转换关系及思考
- 图的邻接矩阵实现
- 图的邻接矩阵实现
- 图的邻接矩阵实现
- 图的邻接矩阵实现
- 图的邻接矩阵实现
- 图的邻接矩阵实现
- dj的邻接矩阵实现
- 图的基本知识及实现_邻接矩阵_邻接表
- 视图模型转换矩阵的推导也是关于gluLookAt函数即视图转换矩阵的推导及代码实现
- 图的理解:存储结构与邻接矩阵的Java实现
- 图的理解:存储结构与邻接矩阵的Java实现
- 在邻接矩阵中的DFS与BFS的实现
- 3.5 转换矩阵与坐标转换矩阵的对比
- 图的邻接矩阵及遍历
- 判断字符串是否回文
- 接口
- 关于BFC的理解
- 0218
- Axis2项目开发和部署发布
- 邻接矩阵与关联矩阵的转换及实现
- CodeForces - 601A The Two Routes
- 【Unity&IUnity精灵&Unity物体】生成&控制大量物体的时间考究
- 用 Graphlab Create 构建歌曲推荐系统
- if分之结构
- 快捷键
- 从前端模块化的概念来理解Webpack
- Spark-SQL之DataFrame操作大全
- POJ 3551 Putin-chess 可能会