Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

quiver3

Gráfica de vectores o de campos vectoriales 3D

  • 3-D Cartesian grid with plotted arrows

Descripción

quiver3(X,Y,Z,U,V,W) representa flechas con los componentes direccionales U, V y W en las coordenadas cartesianas especificadas por X, Y y Z. Por ejemplo, la primera flecha se origina en el punto X(1), Y(1) y Z(1), se extiende en la dirección del eje x según U(1), se extiende en la dirección del eje y según V(1) y se extiende en la dirección del eje z según W(1). De forma predeterminada, la función quiver3 escala las longitudes de las flechas para que no se superpongan.

ejemplo

quiver3(Z,U,V,W) representa flechas con componentes direccionales especificados por U, V y W en puntos equidistantes a lo largo de la superficie de Z.

  • Si Z es un vector, las coordenadas x de las flechas van de 1 al número de elementos en Z y las coordenadas y son todas 1.

  • Si Z es una matriz, las coordenadas x de las flechas van de 1 al número de columnas en Z y las coordenadas y de las flechas van de 1 al número de filas en Z.

quiver3(___,scale) ajusta la longitud de las flechas:

  • Si scale es un número positivo, la función quiver3 ajusta automáticamente las longitudes de las flechas para que no se superpongan y después las estira mediante un factor de scale. Por ejemplo, una scale de 2 dobla la longitud de las flechas y una scale de 0,5 divide por la mitad la longitud de las flechas.

  • Si scale es 'off' o 0, como quiver3(X,Y,Z,U,V,W,'off'), se deshabilita el escalado automático.

ejemplo

quiver3(___,LineSpec) define el estilo de la línea, el marcador y el color. Los marcadores aparecen en los puntos especificados por X, Y y Z. Si especifica un marcador mediante LineSpec, quiver3 no muestra las puntas de las flechas. Para especificar un marcador y mostrar las puntas de las flechas, configure la propiedad Marker.

ejemplo

quiver3(___,LineSpec,'filled') rellena los marcadores especificados mediante LineSpec.

quiver3(___,Name,Value) especifica las propiedades de las gráficas de campos vectoriales mediante uno o más argumentos de par nombre-valor. Para obtener una lista de las propiedades, consulte Quiver Properties. Especifique los argumentos de par nombre-valor tras el resto de argumentos de entrada. Los argumentos de par nombre-valor se aplican a todas las flechas de la gráfica de campos vectoriales.

quiver3(ax,___) crea la gráfica de campos vectoriales en los ejes especificados por ax en lugar de los ejes actuales (gca). El argumento ax puede preceder a cualquiera de las combinaciones de argumentos de entrada de las sintaxis anteriores.

ejemplo

q = quiver3(___) devuelve un objeto Quiver. Este objeto es útil para controlar las propiedades de la gráfica de campos vectoriales después de crearla.

ejemplo

Ejemplos

contraer todo

Cargue datos de muestra que representen las corrientes de aire de América del Norte. Seleccione para este ejemplo un subconjunto de los datos.

load wind
X = x(5:10,20:25,6:10);
Y = y(5:10,20:25,6:10);
Z = z(5:10,20:25,6:10);
U = u(5:10,20:25,6:10);
V = v(5:10,20:25,6:10);
W = w(5:10,20:25,6:10);

Cree una gráfica de campos vectoriales 3D del subconjunto que haya seleccionado. Los vectores X, Y y Z representan la ubicación de la base de cada flecha, y U, V y W representan los componentes direccionales de cada flecha. De forma predeterminada, la función quiver3 acorta las flechas para que no se superpongan. Llame a axis equal para utilizar longitudes de unidades de datos iguales a lo largo de cada eje. De este modo, la punta de las flechas tendrá la orientación correcta.

quiver3(X,Y,Z,U,V,W)
axis equal

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

De forma predeterminada, la función quiver3 acorta las flechas para que no se superpongan. Para deshabilitar el escalado automático para que las longitudes de las flechas estén determinadas completamente por U, V y W, establezca el argumento scale en 0.

Por ejemplo, devuelva en primer lugar las coordenadas x, y y z de una esfera unidad con 10 por 10 caras. Calcule los componentes direccionales de sus normales de superficie usando la función surfnorm. Después, cree una gráfica de campos vectoriales 3D sin escalado automático.

[X,Y,Z] = sphere(10);
[U,V,W] = surfnorm(X,Y,Z);
quiver3(X,Y,Z,U,V,W,0)
axis equal

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

A modo comparativo, cree la gráfica con escalado automático. Observe que las flechas son más cortas y no se superponen.

figure
quiver3(X,Y,Z,U,V,W)
axis equal

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

Represente vectores que sean normales a la superficie definida por la función z=xe-x2-y2. Use la función quiver3 para representar los vectores y la función surf para representar la superficie.

En primer lugar, cree una cuadrícula de valores de x e y a una distancia equidistante. Úselos para calcular z. Después, encuentre los vectores normales.

[X,Y] = meshgrid(-2:0.25:2,-1:0.2:1);
Z = X.*exp(-X.^2 - Y.^2);
[U,V,W] = surfnorm(X,Y,Z);

Muestre los vectores como una gráfica de campos vectoriales 3D. Después, muestre la superficie en los mismos ejes. Ajuste la visualización para que los vectores se muestren normales a la superficie, llamando a axis equal.

quiver3(X,Y,Z,U,V,W)
hold on
surf(X,Y,Z)
axis equal

Figure contains an axes object. The axes object contains 2 objects of type quiver, surface.

Cree una gráfica de campos vectoriales 3D y especifique un color para las flechas.

Por ejemplo, devuelva en primer lugar las coordenadas x, y y z de una superficie. Calcule los componentes direccionales de sus normales de superficie usando la función surfnorm.

[X,Y] = meshgrid(-pi/2:pi/8:pi/2,-pi/2:pi/8:pi/2);
Z = sin(X) + cos(Y);
[U,V,W] = surfnorm(Z);

Después, cree una gráfica de campos vectoriales 3D con flechas rojas.

quiver3(X,Y,Z,U,V,W,'r')
axis equal

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

A partir de la versión R2019b, puede mostrar un mosaico de gráficas utilizando las funciones tiledlayout y nexttile. Llame a la función tiledlayout para crear un diseño de gráfica en mosaico de 1 por 2. Llame a la función nexttile para crear un objeto de ejes y devolver el objeto como ax1. Cree la gráfica izquierda pasando ax1 a la función quiver3. Agregue un título a la gráfica pasando los ejes a la función title. Repita el proceso para crear la gráfica derecha.

[X,Y] = meshgrid(-2:0.25:0,-2:0.25:0);
Z1 = -0.5*(X.^2 + Y.^2);
[U1,V1,W1] = surfnorm(Z1);
Z2 = -X.*Y;
[U2,V2,W2] = surfnorm(Z2);

tiledlayout(1,2)

% Left plot
ax1 = nexttile;
quiver3(ax1,X,Y,Z1,U1,V1,W1)
axis equal
title(ax1,'Left Plot')

% Right plot
ax2 = nexttile;
quiver3(ax2,X,Y,Z2,U2,V2,W2)
axis equal
title(ax2,'Right Plot')

Figure contains 2 axes objects. Axes object 1 with title Left Plot contains an object of type quiver. Axes object 2 with title Right Plot contains an object of type quiver.

Cree una gráfica de campos vectoriales 3D y devuelva el objeto quiver. A continuación, suprima la punta de las flechas y añada marcadores de puntos a la base de cada flecha.

[X,Y] = meshgrid(-3:0.5:3,-3:0.5:3);
Z = 0.2*(Y.^2 - X.^2);
[U,V,W] = surfnorm(Z);

q = quiver3(X,Y,Z,U,V,W);
axis equal
q.ShowArrowHead = 'off';
q.Marker = '.';

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

Argumentos de entrada

contraer todo

Coordenadas x de las bases de las flechas, especificadas como escalar, vector o matriz.

Si X e Y son vectores, y Z, U, V y W son matrices, quiver3 expande X e Y a matrices. En este caso, size(Z), size(U), size(V) y size(W) deben ser iguales a [length(Y) length(X)]. Para obtener más información sobre la expansión de vectores a matrices, consulte meshgrid.

Si X e Y son matrices, X, Y, Z, U, V y W deben tener el mismo tamaño.

Coordenadas y de las bases de las flechas, especificadas como escalar, vector o matriz.

Si X e Y son vectores, y Z, U, V y W son matrices, quiver3 expande X e Y a matrices. En este caso, size(Z), size(U), size(V) y size(W) deben ser iguales a [length(Y) length(X)]. Para obtener más información sobre la expansión de vectores a matrices, consulte meshgrid.

Si X e Y son matrices, X, Y, Z, U, V y W deben tener el mismo tamaño.

Coordenadas z de las bases de las flechas, especificadas como escalar, vector o matriz.

Si X e Y son vectores, y Z es una matriz, size(Z) debe ser igual a [length(Y) length(X)].

Si X e Y son matrices, X, Y, Z, U, V y W deben tener el mismo tamaño.

Componentes x de las flechas, especificados como escalar, vector o matriz.

Si X e Y son vectores, y U es una matriz, size(U) debe ser igual a [length(Y) length(X)].

Si X e Y son matrices, X, Y, Z, U, V y W deben tener el mismo tamaño.

Componentes y de flechas, especificados como escalar, vector o matriz.

Si X e Y son vectores, y V es una matriz, size(V) debe ser igual a [length(Y) length(X)].

Si X e Y son matrices, X, Y, Z, U, V y W deben tener el mismo tamaño.

Componentes z de las flechas, especificados como escalar, vector o matriz.

Si X e Y son vectores, y W es una matriz, size(W) debe ser igual a [length(Y) length(X)].

Si X e Y son matrices, X, Y, Z, U, V y W deben tener el mismo tamaño.

Estilo de línea, marcador y color, especificados como un vector de caracteres o cadena que contiene símbolos. Los símbolos pueden aparecer en cualquier orden. No es necesario especificar las tres características (estilo de línea, marcador y color).

Si especifica un marcador mediante LineSpec, quiver3 no muestra las puntas de las flechas. Para especificar un marcador y mostrar las puntas de las flechas, configure la propiedad Marker.

Ejemplo: '--or' es una línea discontinua roja con marcadores circulares

Estilo de líneaDescripciónLínea resultante
"-"Línea continua

Sample of solid line

"--"Línea discontinua

Sample of dashed line

":"Línea de puntos

Sample of dotted line

"-."Línea de puntos y rayas

Sample of dash-dotted line, with alternating dashes and dots

MarcadorDescripciónMarcador resultante
"o"Círculo

Sample of circle marker

"+"Signo más

Sample of plus sign marker

"*"Asterisco

Sample of asterisk marker

"."Punto

Sample of point marker

"x"Cruz

Sample of cross marker

"_"Línea horizontal

Sample of horizontal line marker

"|"Línea vertical

Sample of vertical line marker

"square"Cuadrado

Sample of square marker

"diamond"Rombo

Sample of diamond marker

"^"Triángulo hacia arriba

Sample of upward-pointing triangle marker

"v"Triángulo hacia abajo

Sample of downward-pointing triangle marker

">"Triángulo hacia la derecha

Sample of right-pointing triangle marker

"<"Triángulo hacia la izquierda

Sample of left-pointing triangle marker

"pentagram"Pentagrama

Sample of pentagram marker

"hexagram"Hexagrama

Sample of hexagram marker

Nombre del colorNombre cortoTriplete RGBApariencia
"red""r"[1 0 0]

Sample of the color red

"green""g"[0 1 0]

Sample of the color green

"blue""b"[0 0 1]

Sample of the color blue

"cyan" "c"[0 1 1]

Sample of the color cyan

"magenta""m"[1 0 1]

Sample of the color magenta

"yellow""y"[1 1 0]

Sample of the color yellow

"black""k"[0 0 0]

Sample of the color black

"white""w"[1 1 1]

Sample of the color white

Factor de escalado de flecha, especificado como número no negativo u 'off'. De forma predeterminada, la función quiver3 escala automáticamente las flechas para que no se superpongan. La función quiver3 aplica el factor de escalado después de escalar automáticamente las flechas.

Especificar scale es lo mismo que establecer la propiedad AutoScaleFactor del objeto de gráfica de campos vectoriales. Por ejemplo, especificar scale como 2 dobla la longitud de las flechas. Especificar scale como 0.5 reduce a la mitad la longitud de las flechas.

Para deshabilitar el escalado automático, especifique scale como 'off' o 0. Si especifica uno de estos valores, la propiedad AutoScale del objeto de gráfica de campos vectoriales se establece en 'off' y la longitud de la flecha se determina completamente mediante U, V y W.

Ejes objetivo, especificados como objeto Axes. Si no especifica los ejes, la función quiver3 utiliza los ejes actuales.

Argumentos de par nombre-valor

contraer todo

Especifique pares opcionales de argumentos como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

En las versiones anteriores a R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: 'Color','r','LineWidth','1

Nota

Las propiedades que se enumeran aquí son solo un subconjunto. Para obtener una lista completa, consulte Quiver Properties.

Anchura de las líneas de las flechas, especificada como valor positivo en unidades de punto. Un punto equivale a 1/72 pulgadas. El valor predeterminado es 0.5 puntos.

Visualización de la punta de la flecha, especificada como 'on' u 'off', o como 1 (true) o 0 (false) numérico o lógico. Un valor de 'on' equivale a true, y 'off' equivale a false. En consecuencia, puede utilizar el valor de esta propiedad como valor lógico. El valor se guarda como valor lógico activado/desactivado del tipo matlab.lang.OnOffSwitchState.

  • 'on': muestra los vectores con puntas de flecha.

  • 'off': muestra los vectores sin puntas de flecha.

Utilice el factor de escalado automático para ajustar la longitud de las flechas, especificado como 'on' u 'off', o como 1 (true) o 0 (false) numérico o lógico. Un valor de 'on' equivale a true, y 'off' equivale a false. En consecuencia, puede utilizar el valor de esta propiedad como valor lógico. El valor se guarda como valor lógico activado/desactivado del tipo matlab.lang.OnOffSwitchState.

  • 'on': utiliza el valor AutoScaleFactor como multiplicador secundario para escalar la longitud de las flechas para que se ajusten a los datos de las coordenadas definidos dentro de la cuadrícula, así como escalar las flechas para que no se superpongan.

  • 'off': no escala la longitud de las flechas.

Factor de escalado automático, especificado como escalar. El factor de escalado automático es un multiplicador que ajusta las magnitudes de las flechas si la propiedad AutoScale es "on". Por ejemplo, un valor de 2 dobla la longitud de las flechas y un valor de 0.5 reduce a la mitad la longitud de las flechas.

Nota

  • Esta propiedad no tiene efecto si la propiedad AutoScale se establece en "off".

  • Ajustar la propiedad AutoScaleFactor actualiza la propiedad ScaleFactor.

Sugerencias

Para crear una gráfica de campos vectoriales 3D usando coordenadas cilíndricas o esféricas, conviértalas en primer lugar a coordenadas cartesianas usando la función pol2cart o sph2cart.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a

Consulte también

Funciones

Propiedades