Я пытаюсь создать граф окрестностей из заданной двоичной матрицы B
.Граф соседства (A
) определяется как матрица смежности, так что
(A(i,j) = A(j,i) = 1)
, если исходная матрица B(i) = B(j) = 1
и i
и j
смежны с каждой (слева, справа, вверх,вниз или по диагонали).Здесь я использовал линейный индекс для доступа к исходной матрице B
.Например, рассмотрим следующую матрицу
B = [ 0 1 0;
0 1 1;
0 0 0 ];
My A
будет графом 9 * 9, как показано ниже
A = [ 0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 1 0 0 1 0;
0 0 0 1 0 0 0 1 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 1 1 0 0 0 0;
0 0 0 0 0 0 0 0 0 ];
Так как в исходной матрице B
, B(4)
, B(5)
и B(8)
смежны с соответствующими записями 1
, матрица смежности A
имеет 1
при A(4,5)
, A(5,4)
, A(4,8)
, A(8,4)
, A(5,8)
и A(8,5)
.
Как я могу создать такую матрицу смежности A
с учетом матрицы B
эффективным способом?