matlab邻接矩阵函数编写
时间: 2024-02-28 18:29:51 浏览: 163
在 MATLAB 中,有多种方式可以表示图形,其中最常用的是邻接矩阵。邻接矩阵是一个 $N * N$ 的矩阵,其中 $N$ 是节点数,矩阵中的每个元素表示两个节点之间是否存在边。当节点 $i$ 和节点 $j$ 之间存在边时,邻接矩阵中的 $a_{i,j}$ 为 $1$,否则为 $0$。
下面是一个邻接矩阵的例子:
$$
\begin{bmatrix}
0 & 1 & 0 & 0 \\
1 & 0 & 1 & 1 \\
0 & 1 & 0 & 1 \\
0 & 1 & 1 & 0 \\
\end{bmatrix}
$$
在 MATLAB 中,我们可以使用以下代码来创建一个邻接矩阵:
```matlab
N = 4; % 节点数
A = zeros(N, N); % 初始化邻接矩阵
% 添加边
A(1, 2) = 1;
A(2, 1) = 1;
A(2, 3) = 1;
A(2, 4) = 1;
A(3, 2) = 1;
A(3, 4) = 1;
A(4, 2) = 1;
A(4, 3) = 1;
% 输出邻接矩阵
disp(A);
```
上述代码将创建一个包含 $4$ 个节点的邻接矩阵,并添加了 $6$ 条边。在实际应用中,我们可以根据需要自行修改节点数和边的连接关系。
同时,也可以将上述代码封装成一个函数,如下所示:
```matlab
function A = adjacency_matrix(N, edges)
% adjacency_matrix - 创建邻接矩阵
%
% INPUTS
% N - 节点数
% edges - 边的连接关系。格式为 [i1, j1; i2, j2; ...; in, jn],其中
% i 和 j 分别表示边的两个端点。
%
% OUTPUTS
% A - 邻接矩阵
%
% 初始化邻接矩阵
A = zeros(N, N);
% 添加边
for k = 1:size(edges, 1)
i = edges(k, 1);
j = edges(k, 2);
A(i, j) = 1;
A(j, i) = 1;
end
end
```
使用上述函数创建邻接矩阵的示例:
```matlab
N = 4; % 节点数
edges = [1, 2; 2, 3; 2, 4; 3, 4]; % 边的连接关系
% 创建邻接矩阵
A = adjacency_matrix(N, edges);
% 输出邻接矩阵
disp(A);
```
输出结果如下:
```
0 1 0 0
1 0 1 1
0 1 0 1
0 1 1 0
```
阅读全文