Main Content

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

distance

Obtener distancia en ubicaciones

Desde R2023a

    Descripción

    dist = distance(map) devuelve las distancias con signo dist al obstáculo más cercano para todas las celdas del mapa map.

    dist = distance(map,location) devuelve las distancias con signo a los límites más cercanos para las ubicaciones xy especificadas location en coordenadas mundiales.

    Nota

    Tenga en cuenta que la función distance determina la distancia utilizando el método de interpolación especificado en la propiedad InterpolationMethod de map.

    dist = distance(map,location,frame) devuelve distancias a los límites más cercanos para las ubicaciones especificadas location en el marco de coordenadas frame.

    [dist,isValid] = distance(map,location,___) devuelve isValid, indicando cuáles de las ubicaciones especificadas location están dentro de los límites del mapa isValid.

    ejemplo

    dist = distance(map,cornerLocation,mapSize) devuelve las distancias a los límites más cercanos para una subregión de la capa del mapa, map. La subregión comienza en la ubicación de la esquina cornerLocation en el marco de coordenadas mundial con un tamaño de mapa determinado mapSize.

    dist = distance(map,cornerLocation,mapSize,frame) devuelve las distancias a los límites más cercanos para una subregión de la capa del mapa, map. La subregión comienza en la ubicación de la esquina cornerLocation en el marco de coordenadas frame.

    Nota

    Al especificar una ubicación de esquina y un tamaño de mapa, distance determina las distancias entre los centros de celda dentro de la región de consulta rectangular.

    Ejemplos

    contraer todo

    Cargue el archivo exampleMaps MAT.

    load exampleMaps.mat

    Cree un mapa de distancia firmado utilizando los datos simpleMap .

    sdm = signedDistanceMap(simpleMap,InterpolationMethod="none");
    show(sdm,BoundaryColor=[0 0 0],Colorbar="on");

    Figure contains an axes object. The axes object with xlabel X [meters], ylabel Y [meters] contains an object of type image.

    setMapData(sdm,[7 1],zeros(5,5))
    getMapData(sdm,[9 2])
    ans = logical
       0
    
    
    show(sdm,BoundaryColor=[0 0 0],Colorbar="on");

    Figure contains an axes object. The axes object with xlabel X [meters], ylabel Y [meters] contains an object of type image.

    Encuentre el límite más cercano a la coordenada, [16.25 6.25] y calcule la distancia al límite más cercano.

    coord = [16.25 6.25];
    boundary = closestBoundary(sdm,coord,"world")
    boundary = 
    boundary(:,:,1) =
    
       20.5000
    
    
    boundary(:,:,2) =
    
        6.5000
    
    
    dist = distance(sdm,coord)
    dist = 4
    

    Trazar la línea entre el punto consultado y el centro de la celda de obstáculo más cercano

    hold on
    plot([coord(1) boundary(:,:,1)],[coord(2) boundary(:,:,2)],"-r",Marker=".",MarkerSize=10)

    Figure contains an axes object. The axes object with xlabel X [meters], ylabel Y [meters] contains 2 objects of type image, line.

    Tenga en cuenta que aunque la distancia desde el punto consultado parece mayor que 4 cuando se traza, la función de distancia calcula la distancia desde el centro de celda más cercano del punto consultado.

    Argumentos de entrada

    contraer todo

    Mapa de distancia firmado, especificado como un objeto signedDistanceMap .

    Coordenadas mundiales o locales, o ubicaciones de cuadrícula, especificadas como una matriz N-por-2. N es el número de ubicaciones. El formato de las filas depende del valor del argumento frame :

    • "world" — [x y] coordenadas en el marco mundial.

    • "local" — [x y] coordenadas en el marco local.

    • "grid" — [row column] ubicación en el marco de la cuadrícula.

    Tipos de datos: double

    Ubicación de la matriz de salida, especificada como un vector de coordenadas de dos elementos en la forma [x y]. La ubicación está en coordenadas mundiales o locales si el argumento frame se establece en "world" y "local", respectivamente. Cuando frame es "grid", cornerLocation es la esquina superior izquierda del marco mundial.

    Tipos de datos: double

    Tamaño del mapa de subregión, especificado como un vector de dos elementos [x y] en coordenadas mundiales o locales. La ubicación está en coordenadas mundiales o locales si el argumento frame se establece en "world" y "local", respectivamente. Cuando frame es "grid", cornerLocation es la esquina superior izquierda del marco mundial.

    Tipos de datos: double

    Marco de coordenadas, especificado como una de estas opciones:

    • "world" : especifica las coordenadas en el marco mundial.

    • "local" : especifica las coordenadas en el marco local.

    • "grid" : especifique las ubicaciones de la cuadrícula en el marco de la cuadrícula.

    Tipos de datos: char | string

    Argumentos de salida

    contraer todo

    Distancias a los obstáculos más cercanos, devueltas como un vector columna de elemento L para consultas de ubicación y un M por N por 2 arreglo para consultas de subregión. L es el número de ubicaciones consultadas. M y N son las dimensiones del mapa o de la subregión del mapa especificada.

    Si frame es "world" o "local", entonces distance devuelve distancias en el espacio cartesiano.

    Si frame es "grid", entonces distance devuelve distancias en el espacio de la cuadrícula.

    Puntos en el límite, devueltos como un vector de elemento L, donde L es el número total de ubicaciones consultadas. Cada elemento es un 1 (true) si el punto está dentro de los límites, y 0 (false) si el punto está fuera de los límites.

    Este resultado solo se devuelve para consultas puntuales.

    Capacidades ampliadas

    Generación de código C/C++
    Genere código C y C++ mediante MATLAB® Coder™.

    Historial de versiones

    Introducido en R2023a