Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

addlink

Agregar enlaces entre uno o más pares de estados

Desde R2024a

Descripción

linkIDs = addlink(graph,statePairs) agrega vínculos entre uno o más pares de estados en el gráfico de entrada especificado como un objeto navGraph.

ejemplo

linkIDs = addlink(graph,statePairs,metadata1,...metadataN) agrega vínculos entre dos estados en el gráfico y agrega la información de metadatos asociada a la tabla de vínculos del gráfico de entrada. Utilice esta sintaxis cuando la tabla de vínculos tenga varias columnas con metadatos, como Weights, además de los pares de estados. Sin embargo, la primera columna de la tabla siempre debe especificar los pares de estados que se conectarán.

ejemplo

[linkIDs,status] = addlink(___) también devuelve status, que indica si los nuevos enlaces se agregaron correctamente al gráfico. Si los enlaces recién especificados entran en conflicto con los enlaces existentes en el gráfico, la función ignora los enlaces en conflicto y los enlaces existentes permanecen sin cambios.

Ejemplos

contraer todo

Cargue el objeto navGraph en el espacio de trabajo MATLAB ® e inspeccione sus propiedades.

load("navGraphData.mat")
disp(navGraphObj)
  navGraph with properties:

           States: [8×3 table]
            Links: [7×3 table]
    LinkWeightFcn: @nav.algs.distanceEuclidean

Inspeccione la tabla de estados del gráfico.

disp(navGraphObj.States)
          StateVector          Name     Lanes
    _______________________    _____    _____

    8          2    0.72176    {'A'}      2  
    1          1    0.29188    {'B'}      2  
    7          7    0.91777    {'C'}      2  
    8         10    0.71458    {'D'}      2  
    5          1    0.54254    {'E'}      2  
    3          6    0.14217    {'F'}      2  
    2          9    0.37334    {'G'}      3  
    8          7    0.67413    {'H'}      2  

Inspeccione la tabla de enlaces del gráfico. La primera columna contiene los índices de los estados de la tabla de estados. Los vectores de dos elementos en la primera columna de la tabla representan los pares de estados que están conectados. Tenga en cuenta que la tabla de enlaces también contiene metadatos 'Weight' y 'Curvature' además de los pares de estados conectados.

disp(navGraphObj.Links)
    EndStates    Weight    Curvature
    _________    ______    _________

     1    3      1.5089    0.0034635
     3    7       8.921    0.0063649
     5    4       2.387    0.0060558
     6    2      19.452    0.0041751
     7    1      38.776    0.0051347
     7    8      13.938    0.0076324
     8    2      43.893    0.0031493

Mostrar el gráfico.

show(navGraphObj)

Figure contains an axes object. The axes object contains an object of type graphplot.

Del gráfico se puede inferir que los estados 'D' y 'E' no están conectados a ningún otro estado y no existe ninguna ruta cuando un punto de inicio o de destino se encuentra en uno de estos estados. Para conectar estos estados, utilice la función addlink. Especifique los pares de estados que se conectarán utilizando los índices o los nombres de estados de la tabla de estados.

Especificar índices de estado para agregar enlaces

En la tabla de estados del gráfico de entrada se puede encontrar que los índices para los estados con nombres "E" y "F" son 5 y 6, respectivamente. Especifique estos índices como entrada para conectar los estados "E" y "F".

Id = addlink(navGraphObj,[5 6],2.5,0.001)
Id = 
4

Inspeccione la tabla de enlaces actualizada para ver nuevos estados y los metadatos relacionados. Tenga en cuenta que los índices de estado de los nuevos pares de estados se agregan a la quinta fila de la tabla de vínculos. Las entradas de la tabla de enlaces se ordenan según el índice del primer estado de cada par de estados enumerado en la primera columna. Las filas que tienen el mismo índice para el primer estado se ordenan según el índice del segundo estado en cada par de estados.

disp(navGraphObj.Links)
    EndStates    Weight    Curvature
    _________    ______    _________

     1    3      1.5089    0.0034635
     3    7       8.921    0.0063649
     5    4       2.387    0.0060558
     5    6         2.5        0.001
     6    2      19.452    0.0041751
     7    1      38.776    0.0051347
     7    8      13.938    0.0076324
     8    2      43.893    0.0031493

Mostrar el gráfico actualizado. Ahora todos los estados en el gráfico de entrada están conectados, puedes calcular la ruta para cualquier punto de inicio y destino que se encuentre entre estos estados.

show(navGraphObj)

Figure contains an axes object. The axes object contains an object of type graphplot.

Especifique los nombres de los estados para agregar enlaces

Añade un enlace entre los estados con los nombres "C" y "D". Además del par de estados, también debe especificar el valor de los metadatos Weight y Curvature asociados en la tabla de vínculos.

Id = addlink(navGraphObj,["C" "D"],5,0.004)
Id = 
2

Inspeccione la tabla de enlaces actualizada para ver nuevos pares de estados y los metadatos relacionados. Tenga en cuenta que los índices de estado de los nuevos pares de estados se agregan a la segunda fila de la tabla de vínculos.

disp(navGraphObj.Links)
    EndStates    Weight    Curvature
    _________    ______    _________

     1    3      1.5089    0.0034635
     3    4           5        0.004
     3    7       8.921    0.0063649
     5    4       2.387    0.0060558
     5    6         2.5        0.001
     6    2      19.452    0.0041751
     7    1      38.776    0.0051347
     7    8      13.938    0.0076324
     8    2      43.893    0.0031493
show(navGraphObj)

Figure contains an axes object. The axes object contains an object of type graphplot.

Cargue el objeto navGraph en el espacio de trabajo MATLAB ® e inspeccione sus propiedades.

load("navGraphData.mat")
disp(navGraphObj)
  navGraph with properties:

           States: [8×3 table]
            Links: [7×3 table]
    LinkWeightFcn: @nav.algs.distanceEuclidean

Inspeccione la tabla de estados del gráfico.

disp(navGraphObj.States)
          StateVector          Name     Lanes
    _______________________    _____    _____

    8          2    0.72176    {'A'}      2  
    1          1    0.29188    {'B'}      2  
    7          7    0.91777    {'C'}      2  
    8         10    0.71458    {'D'}      2  
    5          1    0.54254    {'E'}      2  
    3          6    0.14217    {'F'}      2  
    2          9    0.37334    {'G'}      3  
    8          7    0.67413    {'H'}      2  

Inspeccione la tabla de enlaces del gráfico. La primera columna contiene los índices de los estados de la tabla de estados. Los vectores de dos elementos en la primera columna de la tabla representan los pares de estados que están conectados. Tenga en cuenta que la tabla de enlaces también contiene metadatos 'Weight' y 'Curvature' además de los pares de estados conectados.

disp(navGraphObj.Links)
    EndStates    Weight    Curvature
    _________    ______    _________

     1    3      1.5089    0.0034635
     3    7       8.921    0.0063649
     5    4       2.387    0.0060558
     6    2      19.452    0.0041751
     7    1      38.776    0.0051347
     7    8      13.938    0.0076324
     8    2      43.893    0.0031493

Mostrar el gráfico. Del gráfico se puede inferir que los estados 'D' y 'E' no están conectados a ningún otro estado y no existe ninguna ruta cuando un punto de inicio o de destino se encuentra en uno de estos estados.

show(navGraphObj)

Figure contains an axes object. The axes object contains an object of type graphplot.

Añade enlaces entre estos pares de estados:

  • Estados con nombres "C" y "D".

  • Estados con nombres "E" y "F".

  • Estados con nombres "H" y "D"

Además de los pares de estados, también debe especificar los valores de los metadatos Weight y Curvature asociados en la tabla de vínculos. La función devuelve los índices de los nuevos pares de estados en la tabla de enlaces.

Id = addlink(navGraphObj,["C" "D";"E" "F";"H" "D"],[5;2.5;50],[0.005;0.003;0.004])
Id = 3×1

     2
     5
    10

Inspeccione la tabla de enlaces actualizada para ver nuevos pares de estados y sus metadatos asociados. Tenga en cuenta que los índices de estado de los nuevos pares de estados se agregan a la segunda, quinta y décima fila de la tabla de vínculos. Las entradas de la tabla de enlaces se ordenan según el índice del primer estado de cada par de estados enumerado en la primera columna. Las filas que tienen el mismo índice para el primer estado se ordenan según el índice del segundo estado en cada par de estados.

disp(navGraphObj.Links)
    EndStates    Weight    Curvature
    _________    ______    _________

     1    3      1.5089    0.0034635
     3    4           5        0.005
     3    7       8.921    0.0063649
     5    4       2.387    0.0060558
     5    6         2.5        0.003
     6    2      19.452    0.0041751
     7    1      38.776    0.0051347
     7    8      13.938    0.0076324
     8    2      43.893    0.0031493
     8    4          50        0.004

Mostrar el gráfico actualizado.

show(navGraphObj)

Figure contains an axes object. The axes object contains an object of type graphplot.

Argumentos de entrada

contraer todo

Objeto gráfico, especificado como un objeto navGraph.

Tipos de datos: double

Índices o nombres de los estados que se vincularán, especificados como un vector columna de dos elementos, un arreglo de celdas de cadenas de M por 2. Los índices o nombres de los estados que se van a vincular deben tomarse de la tabla de estados del gráfico de entrada. M especifica el número de pares de estados que se van a vincular.

Los valores en el vector columna o matriz pueden ser

  • Datos numéricos que especifican los índices de los estados a conectar. Por ejemplo, cuando se especifica statePairs como [1 3], la función conecta los estados enumerados en la primera y tercera fila de la tabla de estados del gráfico de entrada.

  • Datos de cadena que especifican los nombres de los estados que se conectarán. Por ejemplo, cuando se especifica statePairs como ["A" "B"], la función obtiene los estados con los nombres "A" y "B" de la tabla de estados del gráfico de entrada y conecta esos dos estados.

Nota

Si los pares de estados especificados ya existen en la tabla de vínculos del gráfico de entrada, la función no agregará el par duplicado al gráfico.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | cell

Metadatos que contienen información adicional sobre los vínculos que conectan los estados, especificados como un arreglo numérico, un arreglo de celdas de vectores de caracteres, un arreglo de cadenas o un arreglo de celdas de cadenas.

Tipos de datos: double | string | cell

Argumentos de salida

contraer todo

Identificadores de enlace, devueltos como un vector columna de números enteros positivos. Los identificadores de enlace representan los índices de los pares de estados agregados a la tabla de enlaces del gráfico. La longitud del vector especifica el número de nuevos pares de estados que están vinculados en el gráfico.

La función addlink ordena las filas de la tabla de enlaces en orden ascendente según el índice del primer estado de cada par de estados enumerado en la primera columna de la tabla. Si dos o más filas tienen el mismo índice para el primer estado, la función ordenará esas filas según el índice del segundo estado en cada par de estados.

Desde R2025a

Estado que indica si se agregan nuevos enlaces, devuelto como un vector columna de elemento M que contiene 0 y 1. Cada elemento indica si el enlace correspondiente especificado en el argumento de entrada statePairs se agrega al gráfico (1 para agregado, 0 para no agregado). El tamaño de este vector coincide con el número de pares de estados especificados en statePairs.

La función no agrega enlaces entre el mismo estado (autoenlaces). Si especifica un vínculo entre estados idénticos, la función lo ignora.

Tipos de datos: logical

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2024a

expandir todo