adjacency matrix является квадратной матрицей, которая предоставляет информацию о реагентах и продуктах реакций в модели. Это позволяет вам легко определить:
Реагенты и продукты в определенной реакции в модели
Реакции, что определенная разновидность является частью, и является ли разновидность реагентом или продуктом в той реакции
Матрицей смежности является N-by-N матрица, где N равняется общему количеству разновидностей и реакций в модели. Каждая строка соответствует разновидности или реакции, и каждый столбец соответствует разновидности или реакции.
Матрица указывает, какие разновидности и реакции включены как реагенты и продукты:
Реагенты представлены в матрице с 1 в соответствующем местоположении (строка разновидностей, столбец реакции). Реагенты появляются выше диагонали.
Продукты представлены в матрице с 1 в соответствующем местоположении (строка реакции, столбец разновидностей). Продукты появляются ниже диагонали.
Все другие местоположения в матрице содержат 0.
Например, если model object содержит одну реакцию, равную A + B -> C и Name свойством реакции является R1, матрица смежности:
A B C R1 A 0 0 0 1 B 0 0 0 1 C 0 0 0 0 R1 0 0 1 0
Получите матрицу смежности для модели путем передачи model object как входной параметр к getadjacencymatrix метод.
Читайте в m1, объект модели, с помощью sbmlimport:
m1 = sbmlimport('lotka.xml');Получите матрицу смежности для m1:
[M, Headings] = getadjacencymatrix(m1)
M =
(5,1) 1
(5,2) 1
(6,3) 1
(7,4) 1
(1,5) 1
(2,5) 1
(2,6) 1
(3,6) 1
(3,7) 1
Headings =
'x'
'y1'
'y2'
'z'
'Reaction1'
'Reaction2'
'Reaction3'Преобразуйте матрицу смежности от разреженной матрицы до a full матрица, чтобы более легко видеть отношения между разновидностями и реакциями:
M_full = full(M)
M_full =
0 0 0 0 1 0 0
0 0 0 0 1 1 0
0 0 0 0 0 1 1
0 0 0 0 0 0 0
1 1 0 0 0 0 0
0 0 1 0 0 0 0
0 0 0 1 0 0 0