Main Content

Graph with undirected edges

`graph`

objects represent undirected graphs, which have
direction-less edges connecting the nodes. After you create a graph object, you can
learn more about the graph by using object functions to perform queries against the
object. For example, you can add or remove nodes or edges, determine the shortest path
between two nodes, or locate a specific node or edge.

G = graph([1 1], [2 3]); e = G.Edges G = addedge(G,2,3) G = addnode(G,4) plot(G)

creates an empty
undirected graph object, `G`

= graph`G`

, which has no nodes or
edges.

creates a graph using a square, symmetric adjacency matrix,
`G`

= graph(`A`

)`A`

.

For logical adjacency matrices, the graph has no edge weights.

For nonlogical adjacency matrices, the graph has edge weights. The location of each nonzero entry in

`A`

specifies an edge for the graph, and the weight of the edge is equal to the value of the entry. For example, if`A(2,1) = 10`

, then`G`

contains an edge between node 2 and node 1 with a weight of 10.

specifies graph edges `G`

= graph(`s,t`

)`(s,t)`

in node pairs.
`s`

and `t`

can specify node indices
or node names. `graph`

sorts the edges in
`G`

first by source node, and then by target node. If
you have edge properties that are in the same order as `s`

and `t`

, use the syntax ```
G =
graph(s,t,EdgeTable)
```

to pass in the edge properties so that
they are sorted in the same manner in the resulting graph.

does not add any self-loops to the graph. That is, any `G`

= graph(`s,t`

,___,'omitselfloops')`k`

that satisfies `s(k) == t(k)`

is ignored. You can use any
of the input argument combinations in previous syntaxes.

uses the table `G`

= graph(`EdgeTable`

)`EdgeTable`

to define the graph. With this
syntax, the first variable in `EdgeTable`

must be named
`EndNodes`

, and it must be a two-column array defining
the edge list of the graph.

does not add self-loops to the graph. That is, any `G`

= graph(`EdgeTable`

,___,'omitselfloops')`k`

that
satisfies ```
EdgeTable.EndNodes(k,1) ==
EdgeTable.EndNodes(k,2)
```

is ignored. You must specify
`EdgeTable`

and optionally can specify
`NodeTable`

.