Graph
::addEdges
Добавляют одно или несколько ребер к графику
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
Graph::addEdges(G
,Edge
) Graph::addEdges(G
,Edge
, <EdgeWeights = ew
>, <EdgeCosts = ec
>, <EdgeDescriptions = ed
>)
Graph::addEdges
добавляют одно или несколько ребер к уже существующему графику. Ребро представлено списком, содержащим две вершины графика. Предупреждение повышено, если одно из заданных ребер действительно уже существует в графике.
Graph::addEdges(G,Edge)
добавляет ребро (ребра) Edge
к графику G
. Две вершины каждого ребра должны быть вершинами в данном графике. В противном случае ошибка повышена. Если ребро будет задано, который уже существует, предупреждение будет распечатано, что это ребро не используется.
С Graph::addEdges(G, Edge,EdgeWeights=ew,EdgeCosts=ec, EdgeDescriptions=ed)
вес, стоимость и описание каждого ребра могут быть установлены в каждое ребро дополнительно. Если эти спецификации отсутствуют, значение по умолчанию 0(=None)
принят. Если спецификация используется, она должна содержать точно то же количество значений, когда существуют ребра. В противном случае ошибка будет повышена.
Значение None
может использоваться в списках спецификаций в каждом ребре, которое не должно быть задано явным образом.
Во-первых, неориентированный граф с двумя вершинами и никакими ребрами создается. Затем два ребра добавляются:
G := Graph([a, b, c, d], []): Graph::printEdgeInformation(G): G := Graph::addEdges(G, [[a, b], [c, d]]): Graph::printEdgeInformation(G)
No edges.
Edges existing in the graph: ---------------------------- [a, b], [c, d], [b, a], [d, c]
Как вы видите, [b,a]
и [d,c]
были вставлены автоматически.
G2 := Graph::addEdges(G, [[a,d]]):Graph::getEdges(G2)
Теперь, что происходит, если ребро вставляется, который уже существует в графике?
G := Graph::addEdges(G, [[d, c]])
Warning: The following edges were not used for operation: [[d, c]]. [Graph::selectEdge]
Предположим, мы пытаемся вставить ребро с вершиной, не существующей в графике:
G := Graph::addEdges(G, [[a, 5]])
Error: One or more edges contain vertices that are not in list '[5]'. [Graph::addEdges]
Теперь давайте смотреть то, что происходит, когда ориентированный граф создается:
G := Graph([a, b, c, d], [], Directed): G := Graph::addEdges(G, [[a, b], [b, c], [c, d]], EdgeWeights = [2/8, -5, PI], EdgeCosts = [30, -40, None]): Graph::printGraphInformation(G)
Vertices: [a, b, c, d] Edges: [[a, b], [b, c], [c, d]] Vertex weights: no vertex weights. Edge descriptions: no edge descriptions. Edge weights: [a, b] = 1/4, [b, c] = -5, [c, d] = PI (other existing edges\ have no weight) Edge costs: [a, b] = 30, [b, c] = -40 (other existing edges have costs zer\ o) Adjacency list (out): a = [b], b = [c], c = [d], d = [] Adjacency list (in): a = [], b = [a], c = [b], d = [c] Graph is directed.
Внимательно рассмотрите в линии затрат Ребра. Ребро [c,d]
не упоминается явным образом из-за значения None
:
G2 := Graph::addEdges(G, [[a, b], [a, d]], EdgeWeights=[10, 20], EdgeCosts = [80, 90], EdgeDescriptions = ["First way", "Second way"]): Graph::printGraphInformation(G2)
Warning: The following edges were not used for operation: [[a, b]]. [Graph::selectEdge]
Vertices: [a, b, c, d] Edges: [[a, d], [a, b], [b, c], [c, d]] Vertex weights: no vertex weights. Edge descriptions: [a, d] = "Second way" Edge weights: [a, b] = 1/4, [b, c] = -5, [c, d] = PI, [a, d] = 20 (other e\ xisting edges have no weight) Edge costs: [a, b] = 30, [b, c] = -40, [a, d] = 90 (other existing edges h\ ave costs zero) Adjacency list (out): a = [b, d], b = [c], c = [d], d = [] Adjacency list (in): a = [], b = [a], c = [b], d = [a, c] Graph is directed.
Если ребро будет иметь спецификации, но уже существуйте в графике, спецификации не изменятся. (см. информацию для ребра [a, b]
выше)
| |
|
Список одного или нескольких ребер |
|
Списки чисел |
|
Список текстов |
|
Булево значение |
|
Вес (веса) нового ребра (ребер). Значение по умолчанию 0. |
|
Стоимость (стоимость) нового ребра (ребер). Значение по умолчанию 0. |
|
Описание (описания) для нового ребра (ребер). Значением по умолчанию не является никакой текст. |
Graph
с правильными вставленными ребрами.