Análisis del código fuente de navegación
%Contorno trazado de contorno.
% CONTOUR(Z) es el trazado de contorno de la matriz Z, procesando los valores en Z
% representa la altura sobre el plano. Un gráfico de contorno es una curva horizontal
Para algún valor V, % de Z. El valor V se elige automáticamente.
% CONTOUR(X,Y,Z) X e Y especifican las coordenadas (X,Y)
% Surface As para navegar. Los datos X e Y se transpondrán u ordenarán
% en formato MESHGRID, dependiendo de la primera
% fila y columna de X (utilizada para posicionar los datos) y
% La primera fila de X y la primera columna de Y (ordenar los datos). Estos
% datos X e Y deben ordenarse consistentemente si el primer
% elemento de la columna Todos los elementos en la primera columna son
% más grandes que la segunda . Asimismo, Y debe estar
% ordenado uniformemente fila por fila.
% CONTOUR(Z, N) y CONTOUR(X, Y, Z, N) dibujan N líneas de contorno,
% anula el valor automático.
% Contour (Z, V) y Contour (X, Y, Z, V) dibujan contornos de longitud (V)
% en el vector v el valor especificado. Calcule un solo contorno en el nivel v usando CONTOUR(Z,) o
% CONTOUR(X,Y,Z,).
%Contour(AX,...) se dibuja en AX en lugar de GCA.
% =contour(...) devuelve la matriz de contorno C, como se describe en
% Maneja H para CONTOURC y objetos de grupo de contorno. Este identificador puede
% usarse como entrada para CLABEL.
%
%Los contornos generalmente se colorean según el mapa de colores actual
% y se dibujan como objetos de parche. Puedes anular este comportamiento
% con la sintaxis contorno(...LINESPEC) para dibujar el contorno
% con el color y estilo de línea especificados. Consulte Ayuda de trazado
% para obtener más información sobre los valores de LINESPEC.
%
%La entrada del esquema anterior puede ir seguida de pares atributo/valor
% para especificar atributos adicionales del objeto del esquema.
%
%Utilice el código de R. Pawlowicz para superficies paramétricas y
%etiquetas de contorno incrustadas.
%
%Ejemplo:
% = contorno(pico); clarabel(c,h), barra de colores
%
% p>
%Ver CONTOUR3, CONTOURF, CLABEL, COLORBAR, MESHGRID.
%Otros detalles:
%
% CONTOUR usa CONTOUR3 para completar la mayor parte del dibujo del contorno. A menos que se especifique
% alinetype, el contorno se dibujará como un objeto de parche
%con un color de borde tomado del mapa de colores actual. Cuando se utiliza LineType
%, se dibujará un objeto de línea.
%
% Gracias a R. Pawlowicz (IOS) rich@ios.bc.ca por "contours.m" y
% 'clabel.m /inline_labels ', para que los contornos ahora se puedan usar con % superficies parametrizadas y etiquetas de contorno en línea.
%Copyright 1984-2007 The MathWorks, Inc.
% $Revisión: 5.18 4 .
= use V6 plotapi(vara gin {:}, '-mfilename ', mfilename);
if v6
= lcontourv 6(args {:} );
Otros
% analiza posibles entradas de eje
error(nargchk(1, inf, nargin, ' struct '));
= ax check(args {:});
= parse args(args); #OK
if ~isempty(msg), error(Fin %); #Está bien
if está vacío(cax) || isa(handle(cax), ' hg.axes ')
CAX = new plot(CAX);
parax=cax
hold_state=eshold(CAX);
Otros
parax=cax
cax=ancestro( cax,'axis');
hold_state = true
Fin
h = gráfico de especificaciones ('parent', parax, pares PV {: });
set(h, 'refreshmode', 'auto');
c = get(h, 'contour Matrix');
Si ~mantener estado
Ver(cax, 2);
set(cax, 'box', 'on', 'layer', 'top'); p>Grid(cax, "off")
Fin
plotdoneevent(cax, h
h = double(h );
Fin
Si nargout & gt0
cout=c;
Mano=h;
fin
función = Lcontourv6(varargin)
% analizar posibles entradas de eje
error(nargchk(1, 6, nargin, ' struct '));
= ax check(vara rgin {:});
CAX = new plot(CAX
= contour3(cax, args {:}) ;
if ~isempty(msg), error(msg); end% #OK
set(h, 'ZData',);
if ~ishhold(cax)
Ver(cax, 2);
set(cax, 'Caja', 'on');
Grid(cax, "Cerrar")
Fin
función = parseargs(args)
msg = "";
%pair pv con separación de parámetros de inicio
= parse params(args);
% Verifique los parámetros de cadena especiales de los parámetros de datos finales
if ~isempty(pvpairs)
= col style(PV pares { 1 }); % #OK
Si está vacío (tmsg)
args = {args{:}, pvpairs{1 }}.
Pares PV = Pares PV(2:end);
Fin
msg = checkpvpairs(pvpairs);
Fin p>
Fin
p>
nargs = longitud (parámetro);
x =;
y =; p>z =;
if ischar(args{end})
= col estilo(args { end });% #Está bien
si ~isempty (tmsg),
msg = sprintf('Opción desconocida "%s",", args { end });
Fin
if ~isempty( c)
pvpairs = { 'linecolor ', c, pares de PV {:} };
Fin
if ~isempty(l)
pvpairs = {'linestyle ', l, pares PV {:} };
Fin
NAR GS = NAR GS-1;
Fin
if (nargs == 2) || (nargs == 4)
if (nargs == 2)
z = comprobación de datos(args { 1 });
pvpairs = {'zdata ', z, pares PV {:} };
Otros
x = data chk(args { 1 });
y = registro de datos(args { 2 });
z = registro de datos(args { 3 }); xdata ', x, ' ydata ', y, 'zdata ', z, pares PV {:} };
Fin
if(length(args { nargs })= = 1)& amp(fix(args{nargs}) == args{nargs})
% N
zmin = min(real(double(z(:)))) ;
zmax = max( real(double(z(:)));
if args{nargs} == 1
pvpairs = {'levellist ', (zmin+zmax)/2, pares PV {:} };
Otros
levs = linspace(zmin, zmax, args { nargs }+2); p>
pvpairs = {'levellist ', levs(2:end-1), pares PV {:} };
Fin
Otros
% nivel
pvpairs = {'levellist ', único(args{nargs}), pares de PV {:} };
End
elseif (nargs == 1)
z = data chk(args { 1 });
pvpairs = {'zdata ',z,PV pares {:} };
elseif (nargs == 3)
x = registro de datos(args { 1 }
y = registro de datos(args { 2 }); p>z = comprobación de datos(args { 3 }) ;
pv
pares = {'xdata ', x, ' ydata ', y, 'zdata ', z, PV pairs {:} };
Fin
% Si se especifican x e y , asegúrese de que los datos sean consistentes.
if ~isempty(x)
msg = xyzcheck(x, y, z
Fin
si ~ está vacío; (z & & ampisempty(mensaje)
k = buscar(es finito(z));
zmax = max(z(k));
zmin = min(z(k));
If any(k)
Warning(' MATLAB:contour:NonFiniteData ', ' Contorno no renderizado para ZData no finitos ') ;
elseif isempty(z) || (zmax == zmin)
Warning(' MATLAB:contour:ConstantData ', 'El contorno no se representa para ZData constante ' ); p>
Fin
Fin
args =;