Main Content

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

gradient

Obtenez un dégradé à certains endroits

Depuis R2023a

    Description

    grad = gradient(map) renvoie les xy-gradients grad pour la carte de distance signée spécifiée map.

    grad = gradient(map,location) renvoie un tableau de dégradés pour les emplacements xy spécifiés location en coordonnées mondiales.

    exemple

    grad = gradient(map,location,frame) renvoie un tableau de valeurs de dégradé pour les emplacements spécifiés location, dans le cadre de coordonnées frame.

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

    grad = gradient(map,cornerLocation,mapSize) renvoie une matrice de valeurs dans 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.

    grad = gradient(map,cornerLocation,mapSize,frame) renvoie une matrice de distances dans 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 avec une taille de carte donnée mapSize.

    Remarque

    Lorsque les cornerLoc et mapSize sont spécifiés, gradient calcule les gradients au niveau des centres de cellules dans la région de requête rectangulaire.

    Exemples

    réduire tout

    Créez une carte interpolée linéairement.

    map = signedDistanceMap(InterpolationMethod="linear");

    Définissez les données cartographiques sur une matrice d’identité pour définir la diagonale principale de la carte sur occupée.

    setMapData(map,eye(10));

    Définissez le quadrant supérieur gauche comme étant occupé.

    setMapData(map,[0 5],true(5));

    Calculez le dégradé dans chaque cellule de coin de la carte.

    queryIJ = [1 1; 1 10; 10 1; 10 10];
    gradientAtCornerCell = gradient(map,queryIJ,"grid")
    gradientAtCornerCell = 
    gradientAtCornerCell(:,:,1) =
    
         1
         0
         1
        -1
    
    
    gradientAtCornerCell(:,:,2) =
    
         1
         1
         0
        -1
    
    

    Calculez le dégradé pour les cellules du quadrant supérieur gauche.

    gradientInQuadrant = gradient(map,[0 5],[5 5])
    gradientInQuadrant = 
    gradientInQuadrant(:,:,1) =
    
        1.0000    1.0000    1.0000    1.0000    1.0000
             0    0.5000    1.0000    1.0000    1.0000
             0         0    0.5000    1.0000    1.0000
             0         0         0    0.5000    1.0000
             0         0         0         0    0.5000
    
    
    gradientInQuadrant(:,:,2) =
    
       -1.0000         0         0         0         0
       -1.0000   -0.5000         0         0         0
       -1.0000   -1.0000   -0.5000         0         0
       -1.0000   -1.0000   -1.0000   -0.5000         0
       -1.0000   -1.0000   -1.0000   -1.0000   -0.5000
    
    

    Affichez les vecteurs de dégradé sur la carte.

    show(map,BoundaryColor=[0 0 0],VectorField="Gradient");

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

    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

    xy-gradients, renvoyés sous la forme d'un tableau L-by-1-by-2 pour les requêtes de localisation et d'un M-by- N tableau par 2 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.

    Les dégradés x et y-gradients sont respectivement la première et la deuxième page.

    Si frame est soit "world" ou "local", alors gradient renvoie les dégradés dans l'espace cartésien.

    Si frame est "grid", alors gradient renvoie les dégradés 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