主要内容

이번역번역이지는최신내용을담고담고않습니다않습니다。최신최신내용을영문영문으로여기를클릭클릭

무방향간선이있는있는

설명

이는노드를하는방향이없는간선을가지는그래프그래프를。예를들어,노드나노드나을추가또는제거하거나,두노드사이의최단최단경로를확인,특정노드나간선을찾을수。

g =图([1 1],[2 3]);e = g.edges g =添加(g,2,3)g = addnode(g,4)plot(g)

생성

설명

예제

G=图는노드나간선이없는비어있는무방향그래프객체G를생성합니다。

예제

G=图(一个는정사각대칭인접행렬一个를사용하여가중그래프(加权图)를생성합니다。一个0의이아닌각요소의위치는그래프의간선을지정하며,간선의가중치는해당요소의값과같습니다。예를들어,a(2,1)= 10이면G1는노드2와노드사이에서가중치10인가간선을포함합니다。

예제

G=图(一个节点名는추가로노드이름을지정합니다。节点名의요소개수는大小(1)과과합니다。

G=图(一个NodeTable은테이블NodeTable을사용하여노드이름(과가능한기타노드특성)을지정합니다。이테이블은一个와행개수가동일해야합니다。테이블변수的名字을사용하여노드이름을을지정。

예제

G=图(一个___类型은그래프를생성하는데사용할인접행렬의삼각행렬을지정합니다。一个는반드시지정해야하며,节点名또는NodeTable을선택적으로지정할수있습니다。一个의상부삼각이나하부삼각만사용하여그래프를생성하려는경우类型'上'또는“低”일수있습니다。

예제

G=图(一个___, ' omitselfloops ')一个의대각선요소를무시하고자가루프가없는그래프를반환합니다。위에열거된구문에나와있는입력인수를원하는대로조합하여사용할수있습니다。

예제

G=图(s t는노드쌍에서그래프간선(s, t)를를합니다。年代t는노드인덱스또는노드이름을지정할수。

예제

또한G=图(s t权重는배열权重로간선가중치도지정합니다。

예제

G=图(s t权重节点名는문자형벡터로구성된셀형배열또는字符串형배열节点名를사용하여노드이름을지정합니다。年代t에는节点名에없는노드이름을사용할수없습니다。

G=图(s t权重NodeTable은테이블NodeTable을사용하여노드이름(과가능한기타노드특성)을지정합니다。的名字테이블변수를사용하여노드이름을지정합니다。年代t에는NodeTable에없는노드이름을사용할수없습니다。

예제

G=图(s t权重数字은숫자형스칼라数字으로그래프의노드개수를지정합니다。

G=图(s t___, ' omitselfloops ')는그래프에자가루프를추가하지않습니다。즉,s(k)== t(k)를충족하는k는는됩니다。위에열거된구문에나와있는입력인수를원하는대로조합하여사용할수있습니다。

G=图(s teDébable.___权重를지정하는대신테이블을사용하여간선특성을지정합니다。eDébable.입력값은年代에있는요소와t에있는요소의각대응쌍에대한행이포함된테이블이어야합니다。테이블변수重量를사용하여간선가중치를지정합니다。

예제

G=图(eDébable.은테이블eDébable.을사용하여하여그래프그래프를정의이구문에서eDébable.의첫번째변수이름은반드시endnodes.여야하며,이변수는그래프간선목록을정의하는2열배열이어야합니다。

예제

G=图(eDébable.NodeTable은테이블NodeTable을사용하여그래프노드의이름(과가능한기타특성)을추가로지정합니다。

G=图(eDébable.___, ' omitselfloops ')는그래프에자가루프를추가하지않습니다。즉,EdgeTable.EndNodes (k, 1) = = EdgeTable.EndNodes (k, 2)를충족하는k는는됩니다。eDébable.은반드시지정해야하며,NodeTable을선택적으로지정할수있습니다。

입력인수

모두확장

인접행렬로,비희소(全部)형식또는희소형식의숫자형행렬로지정됩니다。一个의의는그래프의노드사이의연결네트워크(간선)를를합니다。一个에서0이아닌각요소의위치는두사이의간선을지정합니다。그요소의값은간선가중치를제공합니다。논리형인접행렬의의가중가중그래프(未加权图形)가생성됩니다。

一个의주대각선상에있는0이아닌요소는자가루프즉,간선으로자기자신에연결되는노드를지정합니다。대각선상의요소를무시하려면“omitselfloops”입력옵션을사용하십시오。

类型입력값을지정하지않는한一个는대칭행렬이어야합니다。행렬의대칭성을확인하려면issymmetric을사용하십시오。삼각인접행렬의경우类型을지정하여상부삼각또는하부삼각만사용하십시오。

예:A = [0 1 5;1 0 0;5 0 0)은3개의노드와2개의간선이있는그래프를설명합니다。노드1과노2드사이의간선은가중치가1이고,노드1과노드3사이의간선은가기가5입니다。

데이터형:|双倍的|逻辑

노드이름으로,문자형벡터로구성된셀형배열또는字符串형배열로지정됩니다。节点名는길이가numnodes(g)와같아야하며,그래프의각노드에대한비어있지않은고유한이름을포함해야합니다。

예:图G = (A, {n1, n2, n3的})은3×3인접행렬一个에대해세개의노드이름을지정합니다。

데이터형:细胞|字符串

인접행렬유형으로,'上'또는“低”로지정됩니다。

예:图G = (A,“上”)一个의상부삼각만사용하여그래프G를생성합니다。

,노노드쌍으로드인덱스또는노드이름으로지정됩니다。年代t의대응하는노드사이에간선을생성합니다。s와t는모두숫자형이거나,모두문자형벡터,문자형벡터로구성된셀형배열,字符串형배열또는直言형배열이어야합니다。어떤경우이든年代t의요소개수는같아야합니다。

  • 年代t가숫자형이면그래프노드의인덱스에대응됩니다。숫자형노드인덱스는1보다크거나같은양의정수여야합니다。

  • 年代t가문자형벡터,문자형벡터로구성된셀형배열또는字符串형배열이면노드의이름을지정합니다。그래프의节点속성은노드이름g.nodes.name.을가진的名字변수를포함하는테이블입니다。

  • 年代t가直言형배열인경우年代t의범주는그래프의노드이름사용됩니다。여기에는年代또는t의요소가아닌범주도포함될수있습니다。

  • 年代t가동일한두노드사이의다중간선을지정하는경우,결과는다중그래프가됩니다。

다음표에서는숫자형노드인덱스또는노드이름을사용하여하나이상의노드를참조하는몇가지방법을보여줍니다。

형식 단일노드 여러노드
노드인덱스

스칼라

예:1

벡터

예:(1 2 3)

노드이름

문자형벡터

예:“一个”

문자형벡터로구성된셀형배열

예:{“A”“B”“C”}

字符串형스칼라

예:“一种”

字符串형배열

예:(“A”“B”“C”)

直言형배열

예:分类(“”)

直言형배열

예:分类([“A”“B”“C”))

예:g =图表([1 2 3],[2 4 5])는5개의노드와3개의간선이있는그래프를생성합니다。

예:G = graph({'波士顿' '纽约' '华盛顿特区},{“New York”“New Jersey”“Pittsburgh”})는명명된노드5개와간선3개가있는그래프를생성합니다。

간선가중치로,스칼라,벡터,행렬또는다차원배열로지정됩니다。权重는스칼라이거나요소개수가年代t와동일한배열이어야합니다。

는간선가중치를G.Edges.속성테이블에重量변수로저장합니다。그래프를생성한후가중치를추가하거나변경하려면테이블변수를직접수정하면됩니다(예:G.edges.weight = [25 50 75]').

权重를빈배열[]로지정하면가중치는무시됩니다。

예:G = graph([1 2],[2 3],[100 200])은3개의노드와2개의간선이있는그래프를생성합니다。간선은One hundred.200의가중치를가집니다。

데이터형:|双倍的

그래프노드개수로,양의정수스칼라로지정됩니다。数字年代t의가장큰요소보다크거나같아야합니다。

예:G = graph([1 2],[2 3],[],5)는연결된노드3개와고립된(孤立)노드2개가있는그래프를생성합니다。

간선정보테이블입니다。年代t를지정하지않으면eDébable.의첫번째변수는그래프간선을정의하는2열행렬,문자형벡터로구성된셀형배열또는字符串형배열이고endnodes.라는이름을가져야합니다。간선가중치의경우,이테이블변수이름이일부그래프함수에서사용되므로변수重量를사용하십시오。변수重量가있는경우해당값은숫자형열벡터여야합니다。테이블을생성하는방법에대한자세한내용은表格을참조하십시오。

그래프를생성한후G.Edges.를사용하여간선정보테이블을쿼리합니다。

예:[1 2;]2 3;3 5;4 5], VariableNames, {' EndNodes '})

데이터형:表格

노드정보테이블입니다。NodeTable은그래프노드의특성을설명할변수를원하는수만큼포함할수있습니다。노드이름의경우,이변수이름이일부그래프함수에서사용되므로변수的名字을사용하십시오。변수的名字이있는경우그값은각행의고유이름을지정하는문자형벡터로구성된셀형배열또는字符串형배열이어야합니다。테이블을생성하는방법에대한자세한내용은表格을참조하십시오。

그래프를생성한후G.Nodes를사용하여노드정보테이블을쿼리합니다。

예:NodeTable =表({' a ';“b”;“c”;' d '}, VariableNames,{'名字'})

데이터형:表格

출력인수

모두확장

무방향그래프로,객체로반환됩니다。

속성

모두확장

그래프그래프의간선,테이블로반환반환。기본적으로×1아이블이며,여기여기은그래프의간선개수입니다。

  • 그래프에새간선속성을추가하려면边缘테이블에새변수를생성하십시오。

  • 그래프에간선을추가하려면addedge객체함수를사용하고제거하려면rmedge객체함수를사용하십시오。

예:G.Edges.는그래프의간선을나열하는테이블을반환합니다。

예:G.Edges.Weight는간선가중치의숫자형벡터를반환합니다。

예:G.edges.weight = [10 20 30 55]'는그래프에대해새간선가중치를지정합니다。

예:G.Edges.NormWeight = G.Edges.Weight /笔(G.Edges.Weight)는는의정규화가중치가포함된테이블에간선간선을을가합니다。

데이터형:表格

그래프의노드로,테이블로반환됩니다。기본적으로비어있는N×0아이블이며,여기여기N은그래프의노드개수입니다。

  • 그래프에새노드속성을가하려면节点테이블에새변수를생성하십시오。

  • 그래프에노드를추가하려면addnode객체함수를사용하고제거하려면rmnode객체함수를사용하십시오。

예:G.Nodes는그래프의노드속성을나열하는테이블을반환합니다。이테이블은기본적으로비어있습니다。

예:G.Nodes.Names = {'Montana', 'New York', 'Washington', 'California'}'节点테이블에변수名称를추가하여그래프에노드이름을추가합니다。

예:g.nodes.wifi =逻辑([1 0 0 1 1]')은변수无线上网节点테이블에추가합니다。이속성은특정공항에서무선인터넷을사용할수있음을지정합니다。

데이터형:表格

객체함수

모두확장

addedge 그래프에새간선추가
rmedge 그래프에서간선제거
addnode 그래프에새노드가
rmnode 그래프에서노드제거
findedge 그래프에서간선찾기
findnode 그래프에서노드찾기
numedges 그래프의간선개수
numnodes 그래프의노드개수
edgecount 두노드사이의간선개수
reordernodes. 그래프노드다시정렬
sub 부분그래프(子图)추출
BFSearch. 너비우선그래프탐색(图广度优先搜索)
dfsearch 깊이우선그래프탐색(图深度优先搜索)
中心 노드중요도측정
conncomp 그래프의연결성분(连接组件)
BiconnComp. 그래프의이중연결성분(双连通组件)
BCTREE. 블록——절단트리(Block-Cut树)그래프
maxflow 그래프의최대흐름(最大流量)
minspantree 그래프의최소신장트리(最小生成树)
isisomorphic 두그래프가동형인지확인
同构 두그래프간의동형사상계산
ismultigraph 그래프에다중간선이있는지여부확인
简化 다중그래프를단순그래프(简单的图表)로만들기
shortestpath 두개단일노드사이의최단경로
shortestpathtree 노드의최단경로트리
距离 모든노드쌍의최단경로거리
邻接 그래프인접행렬(邻接矩阵)
发病率 그래프결합행렬(关联矩阵)
拉普拉斯算子 그래프라플라시안행렬(拉普拉斯算子矩阵)
学位 그래프노드의차수
邻居 그래프노드의근방
最近的 반지름내최근접이웃
outedges 노드의진출간선
情节 그래프노드와간선플로팅하기

예제

모두축소

3개의노드와2개의간선이있는객체를생성합니다。간선하나는노드1과노드2사이에에,다른간선은노드1과노드3사이에에。

G = graph([1 1],[2 3])
G = graph with properties: Edges: [2x1 table] Nodes: [3x0 table]

그래프의간선테이블을확인합니다。

G.Edges.
ans =.2×1表EndNodes ________ 1 2 1 3

그래프에노드이름을추가한후새노드와간선테이블을확인합니다。각간선의끝노드가이제해당노드이름을사용하여표현됩니다。

G.Nodes.Name = {“一个”“B”“C”} ';G.Nodes
ans =.3×1表姓名_____ {'a'} {'b'} {'c'}
G.Edges.
ans =.2×1表EndNodes ______________ {'A'} {'B'} {'A'} {'C'}

节点테이블과边缘와이파에추가변수변수를가하거나하거나수정하여그래프노드나간선의특성을설명할수수그러나,이러한테이블을을수정하여그래프의노드나간선개수를를직접변경할수는수는수는대신,addedgermedgeaddnodermnode함수등을사용하여그래프의노드나개수개수수정할수있습니다。

예를들어,노드2와노3드사이의그래프에간선을추가하고새간선목록을확인합니다。

g = Accorltge(g,2,3)
G =具有属性的图:边:[3x1表]节点:[3x1表]
G.Edges.
ans =.3×1表Endnodes ______________ {'a'} {'b'} {'a'} {'c'} {'b'} {'b'} {'b'} {'c'}

4차수가인완전그래프를생성하는대칭인접행렬一个를만듭니다。가중치없이그래프그래프를생성하려면논리형인접사용하십시오

A = ones(4) - diag([1 1 1 1])
一个=4×40 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
图G = (~ = 0)
G = graph with properties: Edges: [6x1 table] Nodes: [4x0 table]

그래프의간선목록을확인합니다。

G.Edges.
ans =.6×1表EndNodes ________ 1 2 1 3 1 4 2 3 2 4 3 4

상부삼각인접행렬을생성합니다。

一个= triu(魔法(4))
一个=4×416 2 3 13 0 11 10 8 0 0 6 12 0 0 0 1

인접행렬을사용하여명명된노드가있는그래프를생성합니다。“omitselfloops”를지정하여一个의대각선에있는항목을무시하고,类型'上'로지정하여一个가상부삼각임을나타냅니다。

名称= {'α'“β”“伽马”“δ”};图G =(名称,'上'“omitselfloops”
G = graph with properties: Edges: [6x2 table] Nodes: [4x1 table]

간선정보와노드정보를확인합니다。

G.Edges.
ans =.6×2表Endnode重量______________________ ______ {'alpha'} {'beta'} 2 {'alpha'} 3 {'alpha'} {'altha'} {'delta'} 13 {'beta'} {'gamma'} 10 {'beta'} {'delta'} 8 {'gamma'} {'delta'} 12
G.Nodes
ans =.4×1表的名字  _________ {' α’}{“beta”}{“伽马”}{“δ”}

각간선의끝노드목록을사용하여정육면체그래프를생성하고플로팅합니다。

S = [1 1 2 2 3 3 4 5 5 6 7];T = [2 4 8 3 7 4 6 5 6 8 7 8];g =图(s,t)
G = graph with properties: Edges: [12x1 table] Nodes: [8x0 table]
情节(G)

각간선의끝노드목록을사용하여정육면체그래프를생성하고플로팅합니다。별도의입력값으로노드이름과간선가중치를지정합니다。

S = [1 1 2 2 3 3 4 5 5 6 7];T = [2 4 8 3 7 4 6 5 6 8 7 8];权重= [10 10 1 10 1 10 1 1 1 12 12 12];名称= {“一个”“B”“C”' D ''e''F''G''H'};图G = (s t重量、名称)
G = graph with properties: Edges: [12x2 table] Nodes: [8x1 table]
情节(G,“EdgeLabel”G.Edges.Weight)

각간선의끝노드목록을사용하여가중그래프(加权图)를생성합니다。그래프에총10개의노드가포함되어야함을지정합니다。

s = [1 1 1 1 1];t = [2 3 4 5 6];重量= [5 5 5 6 9];g =图表(s,t,重量,10)
G = graph with properties: Edges: [5x2 table] Nodes: [10x0 table]

그래프를플로팅합니다。추가노드는주연결성분과연결되어있지않습니다。

情节(G)

빈그래프객체G를생성합니다。

G =图;

그래프에3개의노드와3개의간선을추가합니다。年代t에대응하는하는항목은은간선의끝노드노드를정의정의addedge는그래프에적절한노드가아직없는경우자동으로가합니다。

S = [1 2 1];T = [2 3 3];G = addedge (G s t)
g =带有属性的图形:边缘:[3x1表]节点:[3x0表]

간선목록을확인합니다。각각행은그래프의의간선을설명설명

G.Edges.
ans =.3×1表EndNodes ________ 1 2 1 3 2 3

최적의성능을구현하려면에대한단일호출을사용하여그래프를한번에모두생성하십시오。루프에노드나간선을추가하면큰그래프의경우속도가느려질수있습니다。

변수endnodes.重量代码가포함된간선테이블을만듭니다。그런다음변수的名字国家가포함된노드테이블을만듭니다。각테이블의변수는그래프노드와간선의속성을지정합니다。

S = [1 1 1 2 3];T = [2 3 4 3 4];权重= [6 6.5 7 11.5 17]';代码= {“1/44”“1/49”“1/33”'44 / 49'“49/33”} ';eDérable=表([s't'],权重,代码,...“VariableNames”, {“EndNodes”“重量”“代码”})
Edgetable =.5×3表EndNodes重量代码  ________ ______ _________ 1 2 6{“1/44”}1 3 6.5{“1/49”}1 4 7{“1/33”}2 3 11.5{“44/49”}3 4 17{“49/33”}
名称= {“美国”“GBR”“德吴”联邦铁路局的} ';country_code = {' 1 '“44”“49”“33”} ';NodeTable =表(名称、country_code“VariableNames”, {“名字”“国家”})
NodeTable =4×2表国家的名字  _______ _______ {' 美国‘}{1}{的GBR}{“44”}{‘德吴}{“49”}{联邦铁路局的}{“33”}

노드노드이블과간선테이블사용하여하여그래프그래프생성노드노드이블과간선에이블로블로가코드를사용하여하여그래프플로팅플로팅플로팅플로팅플로팅

图G = (EdgeTable NodeTable);情节(G,'nodelabel',g.nodes.country,“EdgeLabel”,g.edges.code)

호환성관련고려사항

모두확장

R2018a에서동작이변경됨

R2015B에개발됨