how can I wired two edges and replace it in an adjacency matrix

1 visualización (últimos 30 días)
mks
mks el 18 de Ag. de 2023
Editada: Vinay el 7 de Ag. de 2024
clc;
clear all;
n = 10;
C= zeros(n, n);
C(1,n)=1;
C(1,n-1)=1;
C(2,n)=1;
A = zeros(n, n);
for i = 1:n
for j = 1:n
if j==i+1 || j == i + 2
A(i,j) = 1;
else
A(i, j) = 0;
end
end
end
B1=A+C;
B=B1+B1';
disp(B);
Here matrix is

Respuestas (1)

Vinay
Vinay el 7 de Ag. de 2024
Editada: Vinay el 7 de Ag. de 2024
Hello mks,
To rewire an adjacency matrix by replacing two edges at random in MATLAB, the "randperm" function can be used for selection.
An adjacency matrix represents a finite graph where matrix elements indicate vertex adjacency. The "randperm(n)" function generates a random permutation of integers from 1 to "n", and "randperm(n,k)" selects "k" unique integers randomly from 1 to "n".
Identify unconnected pairs of nodes in the adjacency matrix and use "randperm" to randomly select two pairs. Then, update the adjacency matrix by using the selected edges to reflect the rewired connections. This process ensures a random yet systematic modification of the graph structure.
For more information about the MATLAB function “randperm,” you can utilize the documentation link provided below: https://www.mathworks.com/help/matlab/ref/randperm.html
% given intial adjacency matrix B we can extract the current edges
[row,col] = find(B ==1)
current_edges = [row,col]
% Get the indices of potential new edges
[row, col] = find(B == 0);
possible_edges = [row, col];
% Exclude self-loops in the edges
possible_edges = possible_edges(row ~= col, :);
% Randomly select two new edges to add
new_edges = possible_edges(randperm(size(possible_edges, 1), 2), :)
% utilize for loop to update the adjaceny matrix
for i = 1:2
B(new_edges(i,1),new_edges(i,2)) = 1;
B(new_edges(i,2),new_edges(i,1)) = 1;
end

Categorías

Más información sobre Construction en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by