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.

gradient

Obtener gradiente en ubicaciones

Desde R2023a

    Descripción

    grad = gradient(map) devuelve los xy-gradientes grad para el mapa de distancia con signo especificado map.

    grad = gradient(map,location) devuelve una matriz de gradientes para las ubicaciones xy especificadas location en coordenadas mundiales.

    grad = gradient(map,location,frame) devuelve una matriz de valores de gradiente para las ubicaciones especificadas location, en el marco de coordenadas frame.

    ejemplo

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

    grad = gradient(map,cornerLocation,mapSize) devuelve una matriz de valores en una subregión de la capa del mapa, map. La subregión comienza en la esquina cornerLocation del marco de coordenadas mundial con un tamaño de mapa determinado mapSize.

    grad = gradient(map,cornerLocation,mapSize,frame) devuelve una matriz de distancias en una subregión de la capa del mapa, map. La subregión comienza en la esquina cornerLocation del marco de coordenadas frame con un tamaño de mapa determinado mapSize.

    Nota

    Cuando se especifican cornerLoc y mapSize, gradient calcula gradientes en los centros de celdas dentro de la región de consulta rectangular.

    Ejemplos

    contraer todo

    Cree un mapa interpolado linealmente.

    map = signedDistanceMap(InterpolationMethod="linear");

    Establezca los datos del mapa en una matriz de identidad para establecer la diagonal principal del mapa como ocupada.

    setMapData(map,eye(10));

    Establecer el cuadrante superior izquierdo como ocupado.

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

    Calcule el gradiente en cada celda de la esquina del mapa.

    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
    
    

    Calcule el gradiente para las celdas en el cuadrante superior izquierdo.

    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
    
    

    Muestra vectores de gradiente sobre el mapa.

    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.

    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 la 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" — Especifica las ubicaciones de la cuadrícula en el marco de la cuadrícula.

    Tipos de datos: char | string

    Argumentos de salida

    contraer todo

    xy-gradients, devueltos como una matriz de L por 1 por 2 para consultas de ubicación y una matriz de M por N por 2 para consultas de subregión. L es la cantidad de ubicaciones consultadas. M y N son las dimensiones del mapa o la subregión del mapa especificada.

    Los gradientes x y y son la primera y la segunda página, respectivamente.

    Si frame es "world" o "local", entonces gradient devuelve gradientes en el espacio cartesiano.

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

    Puntos en el límite, devueltos como un vector de elementos 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

    expandir todo

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

    Historial de versiones

    Introducido en R2023a