이페이지의최신내용은아직번역되지않았습니다。최신내용은영문으로볼수있습니다。

图形

무방향간선이있는그래프

설명

图形객체는노드를연결하는방향이없는간선을가지는무방향그래프를나타냅니다。그래프객체를생성한후에는객체함수를통해객체에대해쿼리를수행하여그래프에대한자세한내용을확인할수있습니다。예를들어,노드나간선을추가또는제거하거나,두노드사이의최단경로를확인하거나,특정노드나간선을찾을수있습니다。

G =图([1 1],[2 3]);E = G.Edges G = addedge(G,2,3)G = addnode的(G,4)图(G)

생성

설명

예제

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

예제

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

예제

G=图表(一个节点名는추가로노드이름을지정합니다。节点名의요소개수는尺寸(A,1)과같아야합니다。

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

예제

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

예제

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

예제

G=图表(S,T는노드쌍에서그래프간선(S,T)를지정합니다。小号Ť는노드인덱스또는노드이름을지정할수있습니다。

예제

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

예제

G=图表(S,T权重节点名는문자형벡터로구성된셀형배열또는串형배열节点名를사용하여노드이름을지정합니다。小号Ť에는节点名에없는노드이름을사용할수없습니다。

G=图表(S,T权重NodeTable은테이블NodeTable을사용하여노드이름(과가능한기타노드특성)을지정합니다。名称테이블변수를사용하여노드이름을지정합니다。小号Ť에는NodeTable에없는노드이름을사용할수없습니다。

예제

G=图表(S,T权重NUM은숫자형스칼라NUM으로그래프의노드개수를지정합니다。

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

G=图表(S,TEdgeTable___权重를지정하는대신테이블을사용하여간선특성을지정합니다。EdgeTable입력값은小号에있는요소와Ť에있는요소의각대응쌍에대한행이포함된테이블이어야합니다。테이블변수重量를사용하여간선가중치를지정합니다。

예제

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

예제

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

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

입력인수

모두확장

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

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

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

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

데이터형:||合乎逻辑

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

예:G =图表(A,{ 'N1', 'N2', 'N3'})은的3x3인접행렬一个에대해세개의노드이름을지정합니다。

데이터형:细胞|

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

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

노드쌍으로,노드인덱스또는노드이름으로지정됩니다。图形小号Ť의대응하는노드사이에간선을생성합니다。小号와吨는모두숫자형이거나,모두문자형벡터,문자형벡터로구성된셀형배열,串형배열또는分类형배열이어야합니다。어떤경우이든小号Ť의요소개수는같아야합니다。

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

  • 小号Ť가문자형벡터,문자형벡터로구성된셀형배열또는串형배열이면노드의이름을지정합니다。그래프의节点속성은노드이름G.Nodes.Name을가진名称변수를포함하는테이블입니다。

  • 小号Ť가分类형배열인경우小号Ť의범주는그래프의노드이름으로사용됩니다。여기에는小号또는Ť의요소가아닌범주도포함될수있습니다。

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

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

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

스칼라

예:1

벡터

예:[1 2 3]

노드이름

문자형벡터

예:'一个'

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

예:{ 'A' 'B' 'C'}

串형스칼라

예:“一个”

串형배열

예:[ “A” “B” “C”]

分类형배열

예:分类( “A”)

分类형배열

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

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

예:G =图({'波士顿'纽约“华盛顿特区。”},{“纽约”'新泽西“匹兹堡”})는명명된노드5개와간선3개가있는그래프를생성합니다。

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

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

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

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

데이터형:|

그래프노드개수로,양의정수스칼라로지정됩니다。NUM小号Ť의가장큰요소보다크거나같아야합니다。

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

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

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

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

데이터형:

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

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

예:NodeTable =表({ 'A'; 'B'; 'C'; 'd'}, 'VariableNames',{ '名称'})

데이터형:

출력인수

모두확장

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

속성

모두확장

그래프의간선으로,테이블로반환됩니다。기본적으로中号X1테이블이며,여기서中号은그래프의간선개수입니다。

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

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

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

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

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

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

데이터형:

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

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

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

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

예:G.Nodes.Names = { '蒙大拿', '纽约', '华盛顿' 号, '加利福尼亚'}”节点테이블에변수名称를추가하여그래프에노드이름을추가합니다。

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

데이터형:

객체함수

모두확장

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

예제

모두축소

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

G =图([1 1],[2 3])
G =图表与属性:边缘:[2×1表]节点:[3x0表]

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

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'}

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

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

G = addedge(G,2,3)
G =图表与属性:边缘:[3X1表]节点:[3X1表]
G.Edges
ANS =3×1表EndNodes ______________ { 'A'} { 'B'} { 'A'} { 'C'} { 'B'} { 'C'}

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

A =酮(4) -  DIAG([1 1 1 1])
A =4×40 1 1 1 1 0 1 1 1 1 0 1 1 1 1 0
G =曲线图(A〜= 0)
G =图表与属性:边缘:[6X1表]节点:[4x0表]

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

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

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

A = triu(魔术(4))
A =4×416 2 3 13 0 11 10 8 0 0 6 12 0 0 0 1

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

名称= {'α'“测试版”“伽马”'三角洲'};G =曲线图(A,名称,'上''omitselfloops'
G =图表与属性:边缘:[6X2表]节点:[4X1表]

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

G.Edges
ANS =6×2表EndNodes重量______________________ ______ { '阿尔法'} { '测试'} 2 { '阿尔法'} { 'γ'} 3 { '阿尔法'} { '增量'} 13 { '测试'} { 'γ'} 10 {”的β”} { '增量'} 8 { 'γ'} { '增量'} 12
G.Nodes
ANS =4×1表名称_________ { '阿尔法'} { '测试'} { 'γ'} { '增量'}

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

S = [1 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 =图表与属性:边缘:[12X 1表]节点:[8X0表]
图(G)

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

S = [1 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 110 110 1 1 12 12 12 12];名称= {'一个''B''C''d''E''F''G''H'};G =图表(S,T,重量,名称)
G =图表与属性:边缘:[12X2表]节点:[8X1表]
情节(G,'EdgeLabel',G.Edges.Weight)

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

S = [1 1 1 1 1];T = [1 2 3 4 5 6];权重= [5 5 5 6 9];G =图表(S,T,重量,10)
G =图表与属性:边缘:[5×2表]节点:[10x0表]

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

图(G)

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

G =曲线图。

그래프에3개의노드와3개의간선을추가합니다。小号Ť에대응하는항목은그래프간선의끝노드를정의합니다。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 = [1 2 3 4 3 4];权重= [6 6.5 7 11.5 17]';代码= {'1/44''1/49''1/33''44 / 49''49 / 33'}';EdgeTable =表([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'“申”'FRA'}';COUNTRY_CODE = {'1''44''49''33'}';NodeTable =表(姓名,COUNTRY_CODE,'VariableNames'{'名称''国家'})
NodeTable =4×2表名称国家_______ { 'USA'} { '1'} { 'GBR'} { '44'} { '申'} { '49'} { 'FRA'} { '33'}

노드테이블과간선테이블을사용하여그래프를생성합니다。노드레이블과간선레이블로국가코드를사용하여그래프를플로팅합니다。

G =图表(EdgeTable,NodeTable);情节(G,'NodeLabel',G.Nodes.Country,'EdgeLabel',G.Edges.Code)

호환성관련고려사항

모두확장

R2018a에서동작이변경됨

R2015b에개발됨