Curso introductorio a Matlab
Brainlab
Noviembre 2008
Contenidos del curso
•Entorno Matlab.
•Tipos de datos básicos.
•Funciones y operaciones con arrays.
•Notación “:” y array slice.
•Operaciones lógicas.
•Operaciones matemáticas.
•Gráficos.
•Miscelánea.
•Ciclo de vida del software.
•Tipos de datos.
•Estructuras de control.
•Descomposición funcional y diseño descendente.
•Funciones.
•Recursividad.
•Debug.
•Proyecto Final.
Matlab CLI
Programación en Matlab
plots(1)
•Un plot es una representación gráfica de los
datos que nos permite echar un vistazo a los
mismos de forma rápida.
•Hay varios tipos de plots: 2d, 3d, raster.
•Para representar una función debemos
evaluar dicha función en varios puntos y trazar
una línea que los una.
•Para crear una nueva ventana gráfica
llamaremos a la función figure que nos
devuelve el handle de la ventana.
plots(2)
•Para saber el handle actual llamaremos a gcf.
•El número de puntos en los que evaluar la
función es importante:
•Podemos mostrar diferentes funciones/datos
en la misma figura.
>> N = 10;
>> x=0:1/N:1;
>> y = sin(3*pi*x);
>> plot(x,y)
>> N=100;
…
plots(3)
•Podemos poner títulos, anotaciones,
cuadrícula y cambiar el estilo de línea.
•Podemos sobreescribir un plot encima de otro
rellamando a la función plot, si queremos que
las gráficas permanezcan juntas en la ventana
gráfica habrá que llamar a hold on/hold off.
>> plot(x,y,’r-.’)
>> title(‘grafico de y = sin(3pi x)')
>> xlabel(‘eje x')
>> ylabel(‘eje y')
>> grid
plots(4)
•Podemos guardar a disco el plot o bien desde
menú o bien con el comando print. Se pueden
especificar varios formatos en el momento de
escribir a disco.
•También podemos poner varios plots en una
misma figura con el comando subplot.
>> print -djpeg100 fig1
>> print -deps fig1
plots(6)
•Podemos hacer un zoom sobre la imagen
seleccionando el trozo de imagen que
queremos visualizar, también podemos
activarlo desde la interfaz gráfica.
•Se puede especificar el estilo de línea cuando
invocamos a plot, el trazo el color y el
marcador.
>> zoom
>> plot(t,y,':or');
>> plot(t,y,':^g');
plots(7)
•Otra función que hace algo parecido es stem:
•Se pueden visualizar tanto los marcadores
como las líneas:
>> t=0:.1:10;
>> y = exp(-t);
>> stem(t,y,'g:');
>> x = 0:pi/15:4*pi;
>> y = exp(2*cos(x));
>> plot(x,y,'-r',x,y,'ok')
plots(8)
•Un aspecto muy importante de la visualización
son los ejes, la cota de referencia para
interpretar los datos, la podemos consultar y
cambiar.
>> x = 0:pi/15:4*pi;
>> y = exp(2*cos(x));
>> plot(x,y,'-r',x,y,'ok');
>> axis([0 14 0 16]);
>> axis([4 10 2 inf]);
plots(9)
•Otro aspecto a modificar son las etiquetas de
las gráficas, podemos cambiar el valor por
defecto que escribe el comando.
>> t=-pi:2*pi/100:pi;
>> y=sin(t);
>> plot(t,y);
>> xlabel('-\pi \leq \Theta \leq \pi');
>> ylabel('sin(\Theta)');
>> title('Plot of sin(\Theta)');
>> set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'});
>> set(gca,'XTick',-pi:pi/2:pi);
>> set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'});
plots(10)
•También podemos fijar la relación de aspecto,
que es el ratio entre la altura y la anchura del
gráfico, por defecto tiene la misma que la
relación de aspecto de la ventana.
>> axis normal
>> axis square
>> axis equal
plots(11)
•Hasta ahora hemos visualizado datos
agrupados por tiempo, pero también
podemos agrupar por otro concepto que no
sea sensible de ser ordenado como el tiempo,
ej: número de pymes por comunidad
autónoma. Para ello usaremos los gráficos de
barras.
>> x=[2 6 4 3 2 7 6];
>> bar(x)
>> x=[14 3 5;1 2 5];
>> bar(x)
plots(12)
•Otro comando para imprimir gráficos de
barras es bar3.
•Otro elemento gráfico son las barras apiladas.
>> x=[2 6 4 3 2 7 6];
>> bar3(x)
>> x=[14 3 5;1 2 5];
>> bar3(x,’group’);
>> x=[14 3 5;1 2 5];
>> bar(x,’stack’)
plots(13)
•Otro gráfica a tener en cuenta son las gráficas
de área:
>> Y = [5 1 2
8 3 7
9 6 8
5 5 5
4 2 3];
harea = area(Y)
plots(11)
•Gráficos en 3D, un ejemplo sencillo:
•La función surf tiene muchos parámetros para
poder cambiar la visualización de la función.
>> Z = peaks(20);
>> h = surf(Z);