Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

distance

Obtenez la distance à certains endroits

Depuis R2023a

    Description

    dist = distance(map) renvoie les distances signées dist jusqu'à l'obstacle le plus proche pour toutes les cellules de la carte map.

    dist = distance(map,location) renvoie les distances signées jusqu'aux limites les plus proches pour les xy-emplacements location en coordonnées mondiales.

    Remarque

    Notez que la fonction distance détermine la distance à l'aide de la méthode d'interpolation spécifiée dans la propriété InterpolationMethod de map.

    dist = distance(map,location,frame) renvoie les distances jusqu'aux limites les plus proches pour les emplacements spécifiés location dans le cadre de coordonnées frame.

    exemple

    [dist,isValid] = distance(map,location,___) renvoie isValid, indiquant lesquels des emplacements spécifiés location se trouvent dans les limites de la carte isValid.

    dist = distance(map,cornerLocation,mapSize) renvoie les distances jusqu'aux limites les plus proches d'une sous-région de la couche cartographique, map. La sous-région commence à l'emplacement du coin cornerLocation dans le cadre de coordonnées mondial avec une taille de carte donnée mapSize.

    dist = distance(map,cornerLocation,mapSize,frame) renvoie les distances jusqu'aux limites les plus proches d'une sous-région de la couche cartographique, map. La sous-région commence à l'emplacement du coin cornerLocation dans le cadre de coordonnées frame.

    Remarque

    Lors de la spécification d'un emplacement de coin et d'une taille de carte, distance détermine les distances entre les centres de cellules dans la région de requête rectangulaire.

    Exemples

    réduire tout

    Chargez le fichier exampleMaps MAT.

    load exampleMaps.mat

    Créez une carte de distance signée en utilisant les données 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.

    Trouvez la limite la plus proche de la coordonnée, [16.25 6.25] et calculez la distance jusqu'à la limite la plus proche.

    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
    

    Tracez la ligne entre le point interrogé et le centre de la cellule d'obstacle le plus proche

    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.

    Notez que même si la distance du point interrogé semble supérieure à 4 lors du tracé, la fonction de distance calcule la distance depuis le centre de cellule le plus proche du point interrogé.

    Arguments d'entrée

    réduire tout

    Carte de distance signée, spécifiée comme objet signedDistanceMap .

    Coordonnées mondiales ou locales, ou emplacements de grille, spécifiées sous la forme d'une matrice N-by-2. N est le nombre d’emplacements. Le format des lignes dépend de la valeur de l'argument frame :

    • "world" — [x y] coordonnées dans le cadre mondial.

    • "local" — [x y] coordonnées dans le repère local.

    • "grid" — [row column] emplacement dans le cadre de la grille.

    Types de données : double

    Emplacement de la matrice de sortie, spécifié sous la forme d'un vecteur de coordonnées à deux éléments sous la forme [x y]. L'emplacement est en coordonnées mondiales ou locales si l'argument frame est défini sur "world" et "local", respectivement. Lorsque frame est "grid", cornerLocation est le coin supérieur gauche du cadre du monde.

    Types de données : double

    Taille de la carte de sous-région, spécifiée sous la forme d'un vecteur à deux éléments [x y] en coordonnées mondiales ou locales. L'emplacement est en coordonnées mondiales ou locales si l'argument frame est défini sur "world" et "local", respectivement. Lorsque frame est "grid", cornerLocation est le coin supérieur gauche du cadre du monde.

    Types de données : double

    Cadre de coordonnées, spécifié comme l'une de ces options :

    • "world" — Spécifiez les coordonnées dans le cadre mondial.

    • "local" — Spécifiez les coordonnées dans le cadre local.

    • "grid" — Spécifiez les emplacements de la grille dans le cadre de la grille.

    Types de données : char | string

    Arguments de sortie

    réduire tout

    Distances jusqu'aux obstacles les plus proches, renvoyées sous la forme d'un vecteur de colonne d'éléments L pour les requêtes de localisation et d'un M-by- N-by- 2 tableaux pour les requêtes de sous-région. L est le nombre d’emplacements interrogés. M et N sont les dimensions de la carte ou de la sous-région de carte spécifiée.

    Si frame est soit "world" ou "local", alors distance renvoie les distances dans l'espace cartésien.

    Si frame est "grid", alors distance renvoie les distances dans l'espace de la grille.

    Points dans la limite, renvoyés sous la forme d'un vecteur d'éléments L, où L est le nombre total d'emplacements interrogés. Chaque élément est un 1 (true) si le point est à l'intérieur des limites, et 0 (false) si le point est en dehors des limites.

    Cette sortie n'est renvoyée que pour les requêtes ponctuelles.

    Capacités étendues

    Génération de code C/C++
    Générez du code C et C++ avec MATLAB® Coder™.

    Historique des versions

    Introduit dans R2023a