Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 基于连通性的无向随机图邻接矩阵重组_Matlab_Graph_Adjacency Matrix - Fatal编程技术网

Matlab 基于连通性的无向随机图邻接矩阵重组

Matlab 基于连通性的无向随机图邻接矩阵重组,matlab,graph,adjacency-matrix,Matlab,Graph,Adjacency Matrix,我有一个无向随机图的nxn邻接矩阵a,所以Aij可以是0或1。如果Aij为1,则表示第i个和第j个节点之间存在一条边。如果为0,则表示它们之间没有边 我想根据顶点的阶数重新排列矩阵。所有度数小于等于k的顶点,我想把它们放在末尾。假设有m个这样的顶点,那么我的新邻接矩阵的最后m行和列将代表这些顶点 a = 1:n; ver = a(sum(A) < k+1 ); 我想在MATLAB中实现这个。我不知道如何有效地解决它。我想我知道如何找到这样的顶点 a = 1:n; ver = a(sum(

我有一个无向随机图的nxn邻接矩阵a,所以Aij可以是0或1。如果Aij为1,则表示第i个和第j个节点之间存在一条边。如果为0,则表示它们之间没有边

我想根据顶点的阶数重新排列矩阵。所有度数小于等于k的顶点,我想把它们放在末尾。假设有m个这样的顶点,那么我的新邻接矩阵的最后m行和列将代表这些顶点

a = 1:n;
ver = a(sum(A) < k+1 );
我想在MATLAB中实现这个。我不知道如何有效地解决它。我想我知道如何找到这样的顶点

a = 1:n;
ver = a(sum(A) < k+1 );

非常感谢您的帮助。

因为您的图形是无向的,所以您的邻接矩阵A是对称的。如前所述,您可以通过对以下列的行或列求和来判断顶点的阶数:

现在,您可以根据顶点的阶数创建顶点

[sd si] = sort(deg, 'decrease'); %// sort in a decreasing order
您可以使用已排序的索引si重新排列:

请注意,必须对的行和列应用相同的排列,否则


现在,您的图形是按顶点的阶数排序的,阶数较小的一次将自然位于A的末尾。

关于将相同的排列应用于列,这一点非常清楚!对不错。我完全忽略了基于连通性的排序可能性。再次感谢。
A = A(si,si);