530 likes | 742 Views
4. Gráficas. MATLAB tiene importantes características para desplegar vectores y matrices en forma gráfica Creando una gráfica La función plot tiene diferentes formas, dependiendo de los argumentos de entrada
E N D
4. Gráficas MATLAB tiene importantes características para desplegar vectores y matrices en forma gráfica Creando una gráfica • La función plot tiene diferentes formas, dependiendo de los argumentos de entrada • Si y es un vector, plot(y) produce una gráfica de los elementos de y vs. El índice de los elementos de y.
4. Gráficas Especificando dos vectores como argumentos plot(x,y) produce una gráfica de y vs. x. Ejemplo: graficar los valores de la función seno de cero a 2pi t = 0:pi/100:2*pi; y = sin(t); plot(t,y)
4. Gráficas Se pueden graficar varios pares (x, y) en un solo eje coordenado. Ejemplo: y2 = sin(t–.25); y3 = sin(t–.5); plot(t,y,t,y2,t,y3)
4. Gráficas Se puede especificar el color y tipo de línea plot(x,y,'color_style_marker') Ventana de Figura • La función plot abre una nueva ventana de figura automáticamente si no existe una abierta • Si existe una, plot la usa por default. • Para abrir una nueva ventana de figura y hacer que plot la use por default, se escribe figure
4. Gráficas • Para hacer que una figura existente sea la figura actual se escribe: figure(n) donde n es el número en la barra de título de la ventana Se pueden agregar nuevos pares (x,y) en una gráfica existente. Esto se hace con: hold on
4. Gráficas Ejemplo: primero se crea un contorno de los picos de la función y luego se superimpone una gráfica con pseudocolor de la misma función [x,y,z] = peaks; contour(x,y,z,20,'k') hold on pcolor(x,y,z) shading interp
4. Gráficas Subplots Esta función permite desplegar múltiples gráficas en una misma ventana de figura e imprimirlas. Al escribir subplot(m,n,p) se divide la ventana de figura en una matriz de m-por-n pequeñas subgráficas y selecciona la subgráfica p como la gráfica actual.
4. Gráficas Por ejemplo: t = 0:pi/10:2*pi; [X,Y,Z] = cylinder(4*cos(t)); subplot(2,2,1) mesh(X) subplot(2,2,2); mesh(Y) subplot(2,2,3); mesh(Z) subplot(2,2,4); mesh(X,Y,Z)
4. Gráficas Datos imaginarios y complejos • Cuando los argumentos a graficar son complejos, la parte imaginaria es ignorada • Excepto cuando a plot se le da solo un argumento complejo, en este caso se grafica le parte real vs la parte imaginaria, es decir: plot(Z) es equivalente a plot(real(Z),imag(Z)) si Z es una matriz con valores complejos
4. Gráficas Por ejemplo: t = 0:pi/10:2*pi; plot(exp(i*t),'–o') Control de los ejes La función axis tiene varias opciones para personalizar la escala, orientación y razón de aspecto de las gráficas
4. Gráficas Ordinariamente, MATLAB encuentra el dato máximo y mínimo y elige los ejes. Se pueden modificar los ejes usando: axis([xmin xmax ymin ymax]) Si se escribe: axis square hace que el eje x y el eje y tengan la misma (ver help axis)
4. Gráficas Etiquetas y títulos • xlabel, ylabel, zlabel; para colocar etiquetas en los ejes x, y y z. • La función title agrega un título en la parte de arriba de la figura. • La función texto inserta texto en cualquier parte de la figura
4. Gráficas Gráficas de superficie. Las funciones mesh y surf despliegan superficies en tres dimensiones mesh produce superficies con líneas que unen los puntos que las forman. surf produce superficies lisas
4. Gráficas Visualización de Functiones de 2 Variables • Para desplegar una función de dos variables, z = f (x,y) se requiere generar matrices X y Y, sobre cuyos valores se evalúa la función • La función meshgrid se usa para ello. Ejemplo: evaluar la función bidimensional sinc(r)=, sin(r)/r, entre las direcciones x y y.
4. Gráficas [X,Y] = meshgrid(–8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; mesh(X,Y,Z)
4. Gráficas Imágenes Los arreglos bidimensionales pueden ser desplegados como imágenes. Los elementos de los arreglos determinan el brillo o el color de las imágenes. Ejemplo: load durer whos (muestra una matriz X de 648-por-509,
4. Gráficas Y una matriz de 128-por-3 matrix, map. Los elementos de X son enteros entre 1 y 128, los cuales sirven como índices de un mapa de colores Así: image(X) colormap(map) axis image
4. Gráficas Ejemplo: load detail image(X) colormap(hot) axis image
5. Ayuda Varias formas de obtener ayuda sobre las funciones de MATLAB • The help command • The help window • The MATLAB Help Desk • Online reference pages • Link to The MathWorks, Inc.
5. Ayuda El comando help Ejemplo: help magic La ventana help Help menu o también, escribiendo: helpwin o helpwin topic (ver el comando lookfor)
5. Ayuda El help desk Escribir helpdesk Doc function (function es la función cuya ayuda se quiere accesar) Archivos PDF Sitio mathworks y ligas
5. Ayuda Revisar funciones save diary
6. Más de matrices y vectores Linear Algebra Una matriz es u arreglo numérico bibimensional que representa una transformación lineal Las operaciones definidas sobre matrices son los elementos del álgebra lineral A =magic(4) • A + A’, es la suma de A con su transpuesta • A’ *A, es el producto de la transpuesta de la matriz A con A
6. Más de matrices y vectores • det(A), calcula el determinante de A. Si det(A)=0, entonces A es singular • X = inv(A), calcula la inversa. Como A es singular entonces no tiene inversa, por lo que aparecerá el mensage: Warning: Matrix is close to singular or badly scaled. Results may be inaccurate.
6. Más de matrices y vectores • e = eig(A), calcula los eigenvalores de A • A^5, eleva A a la quinta potencia • poly(A), determina los coeficientes del polinomio carácterístico
6. Más de matrices y vectores Vectores Los operadores usados con vectores, son: • + Suma • - Resta • .* Multiplicación elemento-por-elemento • ./ División elemento-por-elemento • .\ División elemento-por-elemento por la izquierda • .^ Potencia elemento-por-elemento • .' Transpuesta
7. Control de flujo • if • switch • for • while • break
7. Control de flujo Other Data Structures •Multidimensional arrays •Cell arrays •Characters and text •Structures
7. Control de flujo Multidimensional Arrays Son arreglos con más de dos subíndices Pueden ser creados usando zeros, ones, rand, randn con más de dos argumentos Ejemplo: R = randn(3,4,5);
7. Control de flujo Arreglos de celdas Son arreglos multidimensionales cuyos elementos son copias de otros arreglos Un arreglo de celdas de matrices vacías puede ser creado con la función cell La mayoría de las veces los arreglos de celdas son creados encerrando una colección de varias cosas con llaves {} Por ejemplo C = {A sum(A) prod(prod(A))}
7. Control de flujo C = [4x4 double] [1x4 double] [20922789888000] Texto y caracteres Puede ser introducido en MATLAB como: s = 'Hello’ ver las funciones: double, char
7. Control de flujo Structures Son arreglos multidimensionales con elementos accesados por designadores de campo textuales Por ejemplo: S.name = 'Ed Plum'; S.score = 83; S.grade = 'B+'
7. Control de flujo Crea una estructura escalar con tres campos: S = name: 'Ed Plum' score: 83 grade: 'B+'
7. Control de flujo Se pueden agregar nuevos elementos: S(2).name = 'Toni Miller'; S(2).score = 91; S(2).grade = 'A–'; También se puede agregar un elemnto completo: S(3) = struct('name','Jerry Garcia',... 'score',70,'grade','C')
8. Archivos-m • Los archivos que contienen código en lenguaje MATLAB se denominan archivos-m • Los archivos-m se pueden crear usando un editor de texto • Se usan como cualquier otra función o comando de MATLAB. Hay dos tipos de archivos-m: • Scripts • Functions
8. Archivos-m Scripts: • no aceptan argumentos de entrada • no regresan argumentos de salida • operan los datos en el espacio de trabajo (workspace) • al invocar un archivo script se ejecutan los comandos que se encuentran en el archivo • Pueden operar con datos existentes en el workspace
8. Archivos-m • pueden crear nuevos datos con los cuales operar • aunque no regresan argumentos de salida, pueden crear variables o modificar los datos de variables existentes • pueden producir gráficas usando funciones como plot Crear un archivo-m script
8. Archivos-m Functions • pueden aceptar argumentos de entrada • pueden regresar argumentos de salida • el nombre del archivo-m y de la función que contiene debe ser el mismo • operan sobre variables de su propio workspace, separadas del workspace donde aparece el promt
8. Archivos-m • permiten crear toolboxes propios (agregar al path) • para ver el contenido de un archivo-m usar: type mifunción.m Por ejemplo, ver el archivo-m rank.m disponible en: toolbox/matlab/matfun type rank
8. Archivos-m • La primera línea de una función en un archivo-m comienza con la palabra function • Se da el nombre de la función y el orden de los argumentos • Las siguientes líneas hasta el primer renglón en blanco o el primer archivo ejecutable proveen el texto de ayuda (aparece con help nombre)
8. Archivos-m Variables Globales • Se declaran cuando se desea que más de una variable comparta el valor de una función • La declaración se hace antes de que la variable sea usada en una función • Se aconseja usar letras mayúsculas para nombrar a las variables globales
8. Archivos-m Ejemplo:En un archivo-m llamado falling.m: function h = falling(t) global GRAVITY h = 1/2*GRAVITY*t.^2; Entonces se puede hacer: global GRAVITY GRAVITY = 32; y = falling((0:.1:5)'); y obtener nuevos valores de y sin otros cambios
8. Archivos-m Función eval Trabaja con variables texto La expresión : eval(s) Ejecuta el contenido de s como expresiones de MATLAB.
8. Archivos-m Vectorización Se incrementa la valocidad Otros programas tienen que usar lazos x = 0; for k = 1:1001 y(k) = log10(x); x = x + .01; end
8. Archivos-m Como la vida es muy corta como para andar escribiendo lazos, se usa la versión vectorizada: x = 0:.01:10; y = log10(x);
8. Archivos-m Prelocalización • Cuando no se puede vectorizar el código • Acelera la ejecución de los lazos • Se prelocalizan los vectores o arreglos donde se almacenarán los resultados
8. Archivos-m Ejemplo: Se usa la función zeros para prelocalizar un vector que va a usarse r = zeros(32,1); for n = 1:32 r(n) = rank(magic(n)); end esto acelera significativamente la ejecución del lazo
9. Objetos gráficos • MATLAB proporciona una conjunto de funciones de bajo nivel que permiten crear y manipular líneas, superficies y otros objetos gráficos • Este sistema es llamado Hndle Graphics • Graphics objects son las primitivas básicas de dibujo del sistema Handle Graphics • Estos objetos están organizados en una estructura jerárquica
9. Objetos gráficos Hay doce tipos de objetos Handle Graphics: • The Root object • Figure objects • Uicontrol objects • Axes objects • Uimenu objects • Image objects • Line objects • Patch objects
9. Objetos gráficos • Surface objects • Uimenu objects • Image objects • Line objects • Patch objects • Surface objects. Fuciones para accesar a los objetos •gcf •gca •gco Ver también set y get