Este es mi código:

syms x y;
f= x^2/(y-y^2);
ezcontour(f,[-1,1],[0.1,0.9]);

¿Cómo puedo mostrar las etiquetas? Quiero mostrar algo como esto: ContourLinesExample

¡Muchas gracias!

-1
Motoralfa 11 ago. 2016 a las 19:08

2 respuestas

La mejor respuesta

clabel quiere como entrada la matriz de contorno que muestra Objeto de contorno. Mientras que ezcontour no devuelve la matriz como < a href = "http://www.mathworks.com/help/matlab/ref/contour.html" rel = "nofollow noreferrer"> contour , el objeto Contour tiene un 'ContourMatrix' propiedad. Si especifica una salida para ezcontour, devolverá el mango al contorno trazado que se puede consultar directamente.

Por ejemplo:

f = @(x, y) x.^2/(y-y.^2);

h = ezcontour(f, [-1, 1], [0.1, 0.9]);
C = h.ContourMatrix;  % R2014b or newer
% C = get(h, 'ContourMatrix');  % R2014a and older
clabel(C, h);

Devuelve la salida deseada:

yay

Alternativamente, puede simplemente pasar el mango al contorno para obtener el mismo resultado:

clabel([], h);

Por la documentación:

Si no tiene la matriz de contorno C, reemplace C con [].

0
excaza 11 ago. 2016 a las 17:15

Usando contour:

x = [-1:0.01:1];
y = [0.1:0.01:0.9];
[X, Y] = meshgrid(x,y);
f= X.^2./(Y-Y.^2);
[C, h] = contour(f);
clabel(C, h);

contour

1
Zeta.Investigator 11 ago. 2016 a las 16:18