MATLAB写出邻接矩阵A并用function计算出可达矩阵M
时间: 2023-08-23 15:03:36 浏览: 100
matlab中可达矩阵的计算.pdf
好的,以下是一个基于 function 的 MATLAB 代码示例,用于计算给定有向图的可达矩阵:
```matlab
% 假设有一个有向图,其边集为 edges,
% 节点数为 n,请编写一个 function,用于计算该图的可达矩阵
function M = compute_reachable_matrix(n, edges)
% 构造邻接矩阵 A
A = zeros(n);
for i = 1:size(edges, 1)
A(edges(i, 1), edges(i, 2)) = 1;
end
% 初始化可达矩阵 M 为 A
M = A;
% 计算可达矩阵 M
while true
M_new = M + M * A;
if isequal(M_new, M)
break;
end
M = M_new;
M(M ~= 0) = 1;
end
end
```
这个 function 接受两个参数:节点数 n 和边集 edges。其中,edges 是一个 m x 2 的矩阵,每一行表示一条有向边,第一列为起始节点,第二列为终止节点。该 function 的实现方法与前面的代码示例类似,只是将计算可达矩阵的部分封装成了一个 function,并将邻接矩阵 A 的构造放在了函数内部。
阅读全文