You are on page 1of 144

Curso de iniciacin a

MATLAB
M Cristina Naya Riveiro
Contenidos
Introduccin
Interfaz de usuario de Matlab
El entorno de trabajo de Matlab
Ejecucin de comandos y creacin de variables
Matlab como calculadora
Constantes y operaciones
Variables y expresiones
Funciones intrnsicas
Anlisis de vectores, matrices, polinomios y sistemas
de ecuaciones.
Vectores y matrices
Polinomios

Contenidos
Anlisis de vectores, matrices, polinomios y sistemas
de ecuaciones.
Vectores y matrices
Polinomios
Sistemas de ecuaciones
Otros datos
Cadena de caracteres
Hipermatrices
Estructuras
Cell arrays
Grficos 2D y 3D
Programacin
Anlisis de datos
Interfaces grficas de usuario GUI
Introduccin
Curso de iniciacin a MATLAB
MatLab
Lenguaje de computacin tcnica de alto nivel.
Entorno interactivo para desarrollo de algoritmos, visualizacin de
datos, anlisis de datos y clculo numrico.
Resolver problemas de clculo tcnico ms rpidamente que con
lenguajes de programacin tradicionales, tales como C, C++ y
FORTRAN.
Serie de funciones para documentar y compartir su trabajo. Puede
integrar su cdigo de MATLAB con otros lenguajes y aplicaciones, y
distribuir los algoritmos y aplicaciones que desarrollo usando
MATLAB.
MatLab
MatLab es un asistente matemtico de gran capacidad para el clculo
y la visualizacin: Matrix-Laboratory.

Aunque fue desarrollado inicialmente (1984) para el trabajo exclusivo
con matrices tambin puede trabajar con escalares (reales y
complejos) as como con cadenas de caracteres y otras estructuras.

Cuenta con paquetes de funciones especializadas (toolbox, libreras).

Versin R2010b MatLab 7.11.0.584 (de 16 de agosto de 2010).

Plataformas: estaciones de servicio SUN, Apollo, VAXstation y HP,
VAX, MicroVAX, Gould, Apple Macintos,

S.O. UNIX, Macintosh y Windows.

Caractersticas principales
Lenguaje de alto nivel para clculo tcnico.
Entorno de desarrollo para la gestin de cdigo, archivos y datos.
Herramientas interactivas para exploracin, diseo y resolucin
de problemas iterativos.
Funciones matemticas para lgebra lineal, estadstica, anlisis
de Fourier, filtraje, optimizacin e integracin numrica.
Funciones grficas bidimensionales y tridimensionales para
visualizacin de datos.
Herramientas para crear interfaces grficas de usuario
personalizadas.
Funciones para integrar los algoritmos basados en MATLAB con
aplicaciones y lenguajes externos, tales como C/C++, FORTRAN,
Java, COM y Microsoft Excel.

Potencialidades
1. Posee un lenguaje de programacin propio fcil de aprender.
2. Posee una elevada interaccin con los SoftWare existentes (Maple,
Excel).
3. Posibilidad de ser instalado sobre diferentes SO.
4. Alrededor de este SoftWare se nuclea una comunidad de ms de
1 000 000 de usuarios entre cientficos y especialistas.
5. Posee ayudas tanto On-line como Off-line de inmensas prestaciones.
6. Existe un centro de recursos arbitrado que almacena
organizadamente la experiencia de mltiples especialistas de todo el
mundo.
7. Las libreras han sido exquisitamente validadas y en ocasiones
programadas por los propios descubridores (ej. Wavelets Toolbox).


Debilidades
1. Lenguaje interpretado.
2. Aunque es muy rpido en los clculos
utilizando cdigo nativo, pero en otros
clculos es bastante ms lento que
utilizando cdigo C++ u otro.
3. Aunque posee herramientas para la
exportacin de cdigo, estas no son del
todo eficiente (MatLab Compiler, MatLab
ComBuilder).

Familia del Matlab
C/C++
VHDL
COM+
Java Classes
reas de aplicacin
MODELADO Y ANLISIS FINANCIERO
PROCESAMIENTO DE SEALES E IMGENES
COMUNICACIONES
DISEO DE SISTEMAS DE CONTROL
SISTEMAS DE PRUEBA Y MEDICIN
BIOLOGA COMPUTACIONAL
Familia de Productos MatLab
Clculo Paralelo
Parallel Computing Toolbox
MATLAB Distributed Computing Server
Matemticas, Estadstica y Optimizacin
Symbolic Math Toolbox
Partial Differential Equation Toolbox
Statistics Toolbox
Curve Fitting Toolbox
Optimization Toolbox
Global Optimization Toolbox
Neural Network Toolbox
Model-Based Calibration Toolbox
Diseo y anlisis de sistemas de control
Control System Toolbox
System Identification Toolbox
Fuzzy Logic Toolbox
Robust Control Toolbox
Model Predictive Control Toolbox
Aerospace Toolbox
Procesamiento de seales y comunicaciones
Signal Processing Toolbox
DSP System Toolbox
Communications System Toolbox
Wavelet Toolbox
Fixed-Point Toolbox
RF Toolbox
Phased Array System Toolbox
Biologa computacional
Bioinformatics Toolbox
SimBiology
Procesamiento de imgenes y Visin Artificial
Image Processing Toolbox
Computer Vision System Toolbox
Image Acquisition Toolbox
Mapping Toolbox
Prueba y medicin
Data Acquisition Toolbox
Instrument Control Toolbox
Image Acquisition Toolbox
OPC Toolbox
Vehicle Network Toolbox
Finanzas computacionales
Financial Toolbox
Econometrics Toolbox
Datafeed Toolbox
Database Toolbox
Spreadsheet Link EX (for Microsoft Excel)
Fixed-Income Toolbox
Financial Derivatives Toolbox
Generacin de Cdigo y Verificacin
MATLAB Coder
HDL Coder
HDL Verifier
Filter Design HDL Coder
Implementacin de aplicaciones
MATLAB Compiler
MATLAB Builder NE (for Microsoft .NET Framework)
MATLAB Builder JA (for Java language)
MATLAB Builder EX (for Microsoft Excel)
Spreadsheet Link EX (for Microsoft Excel)
Acceso Base de Datos e Informes
Database Toolbox
MATLAB Report Generator

Interfaz de usuario de Matlab

Curso de iniciacin a MATLAB
El desktop (escritorio)de Matlab
Men principal
El desktop de Matlab
Men de
acceso rpido
El desktop de Matlab
Ventana de
comandos
El desktop de Matlab
Espacio y directorio
de trabajo
El desktop de Matlab
Historial de trabajo
El desktop de Matlab
Novedad de la v_7.0
Barra de Shortcuts
El desktop de Matlab
Men de inicio
El desktop de Matlab
El men de inicio
Men de acceso rpido
Barra de Shortcuts
Creacin de Shortcuts
Definir variables
Ejecutar instrucciones
Mostrar resultados
Llamada a guiones
Llamada a funciones
La ventana de comandos
Recuperar instrucciones
Moverse por la lnea de
comandos:
Comienzo lnea: Inicio
Final lnea: Fin
Esc borra toda la lnea.
Cortar la ejecucin de un
programa con Ctrl+C
La ventana histrica de comandos
Directorio actual de trabajo
Identificadores Valores Tipo de dato
El espacio de trabajo
El editor de arreglos
El editor Debugger
Introduccin
Debugger
Set/Clear breakingpoint: Coloca o borra un punto de ruptura
en la lnea en que est colocado el cursor
Clear all breakingpoints:: Borra todos los puntos de ruptura

Step: Avanza un paso en el programa

Step in: Avanza un paso en el programa y si en ese paso se
llama a una funcin, entra en dicha funcin

Step out: Avanza un paso en el programa y si en ese paso se
llama a una funcin, entra en dicha funcin
Continue: Continua ejecutando hasta el siguiente punto de
ruptura
Quit debugging: Termina la ejecucin del debugger

Uso del Help
Informacin general
sobre Matlab.

Ayuda general, o sobre
un concepto o funcin.

Cmo utilizar y
configurar el entorno
Matlab.

Aprovechar las
capacidades de la
Ventana de Comandos.

Recursos en Internet.

Actualizaciones.

Ejemplos resueltos.
La ayuda de MatLab/ MatLab Help
La Demos
Ayuda y recursos on-line
Ayuda y recursos on-line
Ayuda y recursos on-line
Recursos de difcil acceso
Sintaxis:
save(filename, var-1, ..., var-n, formato);
Guardar variables y estados de una sesin
Comando save
Se emplea para guardar en disco el estado de
una sesin de trabajo o variables particulares
que existan en este.
No se guardan los grficos.


Guardar variables y estados de una sesin
Comando load
Permite cargar variables existentes en un
fichero en el espacio de trabajo.


Sintaxis:
load(filename, var-1, ..., var-n);
Guardar sesin y copiar salidas
Comando diary
Este comando posibilita guardar un record
completo de todas las acciones realizadas en la
ventana de comandos.



Sintaxis:
diary on; %Activado
diary off; %Desactivado
Tiempo y esfuerzo de clculo
En MatLab est abierta la posibilidad de
obtener los tiempos de clculo de una forma
muy sencilla para el usuario, siendo esto en
muchas ocasiones de suma importancia.


Para este fin se emplean las funciones:
cputime; etime y tic ops toc
>> n=1000;
>> A=rand(n);
>> b=rand(n,1);
>> x=zeros(n,1);
>> tiempoIni=clock; x=A\b; tiempo=etime(clock, tiempoIni)
>> time=cputime; x=A\b; time=cputime-time
>> tic; x=A\b; toc
Se desea resolver un sistema lineal arbitrario con
1000 ecuaciones y 1000 incgnitas. de la forma:
Ax=b x=A
-1
b = A\b
Tiempo de clculo (ejemplo)
Preferences (en el men de File)

Prctica 1, primera sesin
1. Modifica el entorno original para que aparezca:
a) nicamente la ventana de comandos.
b) La Ventana de comandos y los comandos ejecutados en
sesiones anteriores.
c) La ventana de comandos y el directorio de trabajo.
d) Prueba otras posibilidades y escoge la que ms se adece a
tu forma de trabajo.
2. Crea un directorio de trabajo con tu nombre.
>> diary primera_sesion.dia
Al final de la sesin de trabajo y, antes de salir de MatLab,
bastar teclear
>> diary off
Para comprobar que ha sido grabado podemos escribir
>>dir (viendo que existe en el listado de ficheros)
Visualizar su contenido: >>type primera_sesion.dia
Ejecucin de comandos y creacin
de variables


Curso de iniciacin a Matlab
Ejecucin de comandos y creacin de
variables
Uso del Matlab como calculadora.

Elementos bsicos del Matlab:

Constantes y operaciones

Variables y expresiones

Funciones intrnsicas

Constantes numricas
Constante numrica es cualquier nmero que se utiliza en un
clculo sin que experimente variacin.
No hace falta definir variables enteras, reales, etc. como en otros lenguajes
Nmeros enteros: a=2
Nmeros reales: x=-35.2
Mximo de 19 cifras significativas
2.23e-3=2.23*10
-3
Nmeros complejos: 3+4i, -9i, -5.j, i=sqrt(-1) (slo se puede usar i o j),
z=2+i*4, z=2+4i Cuidado con no usar luego i como contador en un
bucle trabajando con complejos.
Precisin y formatos: Por defecto tiene un formato corto, pero se pueden
usar otros
>> format long (14 cifras significativas)
>> format short (5 cifras significativas)
>> format short e (notacin exponencial)
>> format long e (notacin exponencial)
>> format rat (aproximacin racional)

Ver en men de File: Preferences Command Windows
Operaciones

Operaciones aritmticas elementales:










Orden de prioridad: Potencias, divisiones y multiplicaciones y por
ltimo sumas y restas. Usar () para cambiar la prioridad


Operacin Smbolo Ejemplo
Suma + 9.3+7
Resta - 9-12
Multiplicacin * 9*53
Divisin / 7/9
Divisin inversa (produce el inverso de la divisin a\b=b/a) \ 5\50
Exponenciacin ^ 6^2

Variables y expresiones
Variable variable=expresin

Una variable es la etiqueta que identifica una porcin de memoria.

Guardar datos de un mismo tipo, nmeros o caracteres,
recuperables y modificables durante la vida de la variable.

Su valor e incluso el tipo de entidad numrica o carcter puede
cambiar a lo largo de una sesin.

Son sensibles a las maysculas y deben de empezar siempre por una letra.

Admiten en su nombre hasta 63 caracteres, letras y nmeros pero nunca:
+ - = * < > ^

x=5, X=7, a=4/3, s = 'cadena de caracteres, C=a*(temperatura-5)

Finalizacin lnea: intro o si es demasiado larga antes del intro


Variables y expresiones

Informacin sobre variables que se estn usando y sus dimensiones (si son
matrices): Workspace.
Tambin tecleando
>> who
>> whos (da ms informacin)

Para eliminar alguna variable se ejecuta
>> clear variable1 variable2
Si se quieren borrar todas las variables:
>> clear

Abortar ejecucin: Control+c
% lnea de comentario


Variables y expresiones
Variables con significado especial

ans: (answer)
eps
pi
i, j: Constante imaginaria.
Inf
NaN: Not a number.
date: toma el valor de la fecha actual.
clock: da un vector de 6 elementos que contiene como coordenadas el ao,
el mes, el da, la hora, el minuto y los segundos.
rand: genera de forma aleatoria un nmero entre 0 y 1.
realmin: el menor nmero positivo utilizable.
realmax: el mayor nmero positivo utilizable


Funciones intrnsicas de MatLab

nombre(argumento)
siempre letras minsculas
exp(x), log(x), log2(x) (en base 2), log10(x) (en base 10), sqrt(x)

Funciones trigonomtricas: sin(x), cos(x), tan(x), asin(x), acos(x),
atan(x), atan2(x) (entre pi y pi)

Funciones hiperblicas: sinh(x), cosh(x), tanh(x), asinh(x),
acosh(x), atanh(x)

Otras funciones: abs(x) (valor absoluto), int(x) (parte entera),
round(x) (redondea al entero ms prximo), sign(x) (funcin signo)

Funciones para nmeros complejos: real(z) (parte real), imag(z)
(parte imaginaria), abs(z) (mdulo), angle(z) (ngulo), conj(z)
(conjugado)

Comandos de ayuda


help
lookfor
what ficheros .m y .mat del directorio actual
dir ficheros del directorio actual
type nombre_fichero Muestra el contenido del fichero
delete nombre_fichero Borra el fichero
cd cambia de directorio
pwd indica el directorio actual
which nombre_fichero india el directorio donde esta
! Abre una ventana de MSDOS que se cierra cuando volvemos a
Matlab
startup.m fichero de arranque al ejecutar matlab.

Practica 2, primera sesin

Anlisis de vectores, matrices,


polinomios y sistemas de ecuaciones.

Curso de iniciacin a MATLAB
Vectores
Definicin de vectores:

Vectores fila; elementos separados por blancos o comas
>> v =[2 3 4]

Vectores columna: elementos separados por punto y coma (;)
>> w =[2;3;4;7;9;8]

Dimensin de un vector w: length(w)

Generacin de vectores fila:
Especificando el incremento h de sus componentes v=a:h:b
Especificando su dimensin n: linspace(a,b,n) (por defecto
n=100)
Componentes logartmicamente espaciadas logspace(a,b,n) (n
puntos logartmicamente espaciados entre 10
a
y 10
b.
Por defecto
n=50)

Vectores: operaciones
Operaciones con escalares (v: vector, k: escalar):
v+k adicin o suma
v-k sustraccin o resta
v*k multiplicacin
v/k divide por k cada elemento de v
k./v divide k por cada elemento de v
v.^k potenciacin cada componente de v esta elevado a k
k.^v potenciacin k elevado cada componente de v
Operaciones entre vectores (v, w: vectores):
v+w adicin o suma
v-w sustraccin o resta
v.*w multiplicacin cada elemento de v por el correspondiente de w
v./w divide cada elemento de v por el correspondiente de w
v.^w potenciacin cada componente de v esta elevado al correspondiente de w
Producto escalar de vectores v*w calcula el producto escalar de v
por w

Vectores: funciones especficas

sum(v) suma de las componentes del vector v
prod(v) producto de las componentes del vector v
v` transposicin de vectores (filas columnas)
dot(v,w) producto escalar de vectores
cross(v,w) producto vectorial de vectores
[y,k]=max(v) valor mximo de las componentes de un vector, k
indica la posicin, lo mismo para min(v) valor mnimo
norm(v) norma eucldea del vector v
norm(v,inf) norma infinito del vector v


Prctica 3, primera sesin

Clculo de errores relativos
Supongamos que para resolver una ecuacin diferencial ordinaria hemos utilizado:
Un mtodo analtico mediante el cual sabemos que su solucin en el intervalo
[0,1] es y(x)=x
2
+cos(x).
Un mtodo numrico para aproximar la solucin en el intervalo [0,1] con
parmetro de discretizacin 0.2, obteniendo la siguiente tabla de soluciones
aproximadas:







Calcular el mximo error relativo.


Ver: calculo_error.m

Matrices
Definicin de matrices:
No hace falta establecer de antemano su tamao (se puede definir
un tamao y cambiarlo posteriormente).

Las matrices se definen por filas; los elementos de una misma fila
estn separados por blancos o comas. Las filas estn separadas
por punto y coma (;).
M=[3 4 5; 6 7 8; 1 -1 0]

Matriz vaca: M=[ ];

Informacin de un elemento: M(1,3), de una fila M(2,:), de una
columna M(:,3).

Cambiar el valor de algn elemento: M(2,3)=1;

Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];


Matrices

Definicin de matrices:

Generacin de matrices:

Generacin de una matriz de ceros, zeros(n,m)
Generacin de una matriz de unos, ones(n,m)
Inicializacin de una matriz identidad eye(n,m)
Generacin de una matriz de elementos aleatorios rand(n,m)

Aadir matrices: [X Y] columnas, [X; Y] filas

Operador : es utilizado para especificar rangos, eliminar/extraer fila o
columna.
Funcin cat para concatenar matrices.



Matrices: operaciones
Operaciones de matrices con escalares:

V: matriz, k: escalar:

v+k adicin o suma
v-k sustraccin o resta
v*k multiplicacin
v/k divide cada elemento de v por k
k./v divide k por cada elemento de v
v.^k potenciacin de cada componente de v a k
k.^v potenciacin k elevado a cada componente de v






Operaciones con matrices:

A+B adicin o suma
AB sustraccin o resta
A*B multiplicacin matricial
A.*B producto elemento a elemento
A^ potenciacin
A.^ elevar a una potencia elemento a elemento
A\B A
-1
B
A/B AB
-1
A./B y A.\B divisin elemento a elemento
A matriz traspuesta (la adjunta si A es compleja)

Ejemplo: main_operaciones_matrices.m
Matrices: operaciones
Matrices: funciones especficas
M matriz

[n,m]=size(M) te da el nmero de filas y columnas
matriz inversa: B=inv(M),
rango: rank(M)
diag(M): Obtencion de la diagonal de una matriz.
sum(diag(M)) calcula la traza de la matriz M.
diag(M,k) busca la k-sima diagonal.
max(M) vector que contiene el mximo de cada columna
norm(M) norma de una matriz (mximo de los valores absolutos de
los elementos de A)
flipud(M) reordena la matriz, haciendo la simtrica respecto de un
eje horizontal.
fliplr(M) ) reordena la matriz, haciendo la simtrica respecto de un
eje vertical
[V, landa]=eig(M) da una matriz diagonal landa con los autovalores
y otra V cuyas columnas son los autovectores de M

Prctica 4, segunda sesin
Ejemplos:

Prctica 4, segunda sesin
Ejemplos:

Prctica 4, segunda sesin
Ejemplos:

Prctica 4, segunda sesin
Para un laboratorio se compran los materiales especificados en la
tabla siguiente.







Utilizar vectores y el producto de vectores para calcular el coste de
cada producto y el total a pagar (la tabla de precios no incluye IVA,
debiendo por tanto aplicarse un 16% de incremento.


Prctica 4, segunda sesin

Utilizar matrices para construir una tabla que contenga:
En la 1 columna la variable grados Celsius en el intervalo [0
100] con un paso de 2.
En la 2 columna su valor en grados Fahrenheit y
en la 3 en grados Kelvin.

Cmo guardaras en un fichero la tabla anterior?

Grados Celsius: C
Grados Fahrenheit: 9/5 C+32
Grados Kelvin: C+273,15



Polinomios

Los polinomios se representan en Matlab por un vector fila de
dimensin n+1 siendo n el grado del polinomio.
Ejemplo: x
3
+2x-7 se representa por
>> pol1=[1 0 2 -7]

Clculo de las races: roots (da un vector columna, aunque pol1 es
un vector fila)
>>raices=roots(pol1)

Un polinomio puede ser reconstruido a partir de sus races con el
comando poly
>> p=poly(raices) (da un vector fila) **

Si el argumento de poly es una matriz se obtiene el polinomio
caracterstico de la matriz.
Polinomios: funciones especficas
Calcular el valor de un polinomio p en un punto dado x: polyval
>>y=polyval(p,x)

Multiplicar y dividir polinomios: conv(p,q) y deconv(p,q)

Calcular el polinomio derivada: polyder(p)

Calcula un polinomio de grado n que aproxima a la funcin y en los
puntos x: polyfit(x,y,n)

[r,p,k]=residue(p1,p2) calcula el desarrollo en suma de fracciones
simples del cociente p1/p2. (p2 tenga slo races reales).
r un vector columna con los numeradores de las fracciones.
p un vector columna con las races del denominador.
k un vector fila con los coeficientes del polinomio independiente.
Polinomios
Ejemplos
Descomponer en fracciones simples el cociente
p1=[1 1 0 1]
p2=[1 3 0 4]
[r,p,k]=residue(p1,p2)
rats(r)
[pol1,pol2]=residue(r,p,k)


4 3
1
2 3
2 3
+
+ +
x x
x x
1
) 1 ( 9
1
) 2 ( 3
13
) 2 ( 9
35
4 3
1
2 2 3
2 3
+
+
+

=
+
+ +
x x x x x
x x
Sistemas de ecuaciones lineales
SEL: Ax=b
>>det(A) %determinante de una matriz cuadrada
>>inv(A) %inversa de una matriz cuadrada
>>rank(A) %rango de una matriz
Para ver si un sistema es compatible
Ax=b compatible >>rank(A)-rank([A,b])
>>cond(A) %nmero de condicin de una matriz
A\b calcula la solucin del sistema lineal Ax=b
eig(A) %calcula los autovalores de una matriz cuadrada
[v,d]=eig(A) %almacena en cada columna de la matriz v los
autovectores de la matriz A, los autovalores se guardan en la matriz
diagonal d




Sistemas de ecuaciones lineales
Ejemplos
Se considera la matriz A=

Calcular el determinante de la matriz A. Resolver el sistema siendo
b un vector columna igual a (1 2 3)

Ver qu ocurre cuando se cambia el elemento a
13
por -10




|
|
|
.
|

\
|


6 10 4
4 2 7
2 18 6
Otros tipos de datos
Cadenas de caracteres
Hipermatrices (arreglos de ms de 2 dim.)
Estructuras
Cell arrays (matrices de celdas)



Cadena de caracteres
Una cadena carcter se representa entre
comillas simples (cadena).



Cadena de caracteres



Hipermatrices
MatLab permite trabajar con matrices de ms de dos dimensiones es decir
hipermatrices.
La aplicacin fundamental de este hecho es almacenar bajo un nico
nombre distintas matrices de un mismo tamao.
Una hipermatriz es un arreglo de (m x n x k) elementos.


Hipermatrices: funciones
Algunas aceptan ms de dos subndices:
rand(), randn(), zeros(), ones()
Emplean con hipermatrices:
size(), ndims(), squeeze(), reshape(), permute(A,v),

1. Todas las funciones de MATLAB que operan sobre escalares (sin(), cos(),
etc.) se aplican sobre hipermatrices elemento a elemento (igual que sobre
vectores y matrices). Las operaciones con escalares tambin se aplican de
la misma manera.
2. Las funciones que operan sobre vectores (sum(), max(), etc.) se aplican a
matrices e hipermatrices segn la primera dimensin, resultando un array
de una dimensin inferior.
3. Las funciones matriciales propias del lgebra Lineal (det(), inv(), etc.) no se
pueden aplicar a hipermatrices. Para poderlas aplicar hay que extraer
primero las matrices correspondientes (por ejemplo, con el operador dos
puntos (:)).


Estructuras
Una estructura (struct) no es ms que una agrupacin de datos
de tipos diferentes bajo un mismo nombre que conforman en s
un nuevo tipo de dato.
Los datos de una estructura se denominan campos o
miembros.
Aunque una estructura puede crearse elemento a elemento
existe una forma mucho ms eficiente y sencilla de trabajar:

Sintaxis
<identif> = struct (field1, value, ... , fieldn, value);
Estructuras
Ejemplo
>> alumno=struct('nombre','Alberto', 'dni',4567893)
alumno =
nombre: 'Alberto'
dni: 4567893
>> alumno.dni
ans =
4567893
>> alumno.nombre
ans =
Alberto

Cell arrays
Un vector (matriz) de celdas es un vector cuyos elementos son cada uno
de ellos una variable de tipo cualquiera.
En un Cell array, el primer elemento puede ser un nmero, el segundo
una matriz, el tercero una cadena de caracteres, el cuarto una
estructura, etc.
Su homlogo en otros lenguajes es la lista.
Un vector (matriz) de celdas se crea empleando llaves para la
introduccin de los elementos.


Sintaxis:
vector(i) = {elemento}
matriz(i,j) = {elemento}
Cell arrays
Ejemplo

Cell arrays
Existe una sintaxis alternativa para la definicin de cell
array, que por comodidad es la ms empleada.

Sintaxis:
vector{i} = elemento
matriz{i,j} = elemento
Grficos con Matlab

Curso de iniciacin a MATLAB
Grficos 2D
Funciones grficas 2D

2D: plot() crea un grfico a partir de vectores con escalas lineales
sobre ambos ejes,

>> plot(X,Y,opcin) (opcin: permite elegir color y trazo de la
curva)

hold on: permite pintar ms grficos en la misma figura (se
desactiva con hold off)
grid activa una cuadrcula en el dibujo. Escribiendo de nuevo grid
se desactiva.

2D: loglog() escala logartmica en ambos ejes, semilogx(): escala
lineal en el eje de ordenadas y logartmica en el eje de abscisas,
semilogy(): escala lineal en abscisas y logartmica en ordenadas


Ejemplo: main_dibujos.m, y ver en Demos: Graphics
Grficos 2D
Funciones grficas 2D

fplot(funcin,[a,b],opcin) representa la funcin dada en el
intervalo [a,b] con la opcin elegida,

>> fplot(2*sin(x/2*cos(3*x)),[-2*pi,2*pi],--)

ezplot(f,[a,b])
>> ezplot('x^2*y-1',[-1,7])



Ver en Demos: Graphics
Grficos 2D y 3D
Funciones grficas 2D y 3D elementales

2D: subplot(n,m,k) subdivide una ventana grfica en m particiones
horizontales y n verticales y k n de la subventana con la que
vamos a trabajar dentro de las nxm posibles.

2D: polar(ngulo,r) para pintar en polares

2D: fill(x,y,opcin) dibuja una curva cerrada y la rellena del color
que se indique en opcin

3D: plot3 es anloga a su homloga bidimensional plot.
plot3(X,Y,Z, opcin)

Grficos 2D y 3D
Eleccin de la escala de los ejes

axis([x0 x1 y0 y1]) (2D), axis([x0 x1 y0 y1 z0 z1]) (3D)

axis auto: devuelve la escala por defecto

axis off: desactiva los etiquetados de los ejes desapareciendo los ejes, sus
etiquetas y la malla, axis on: lo activa de nuevo

axis equal: los mismos factores de escala para los dos ejes

axis square: cierra con un cuadrado la regin delimitada por los ejes de
coordenadas actuales.

Para elegir las etiquetas que aparecen en los ejes:

set(gca, XTick,-pi:pi/2,pi) %gca:get current axis
set(gca, XTicklabel,({-pi,-pi/2,0,pi/2,pi})


Grficos 2D y 3D
Funciones para aadir ttulos a la grfica

title('ttulo') aade un ttulo al dibujo. Para incluir en el texto el valor
de una variable numrica es preciso transformarla mediante :

int2str(n) convierte el valor de la variable entera n en carcter
num2str(x) convierte el valor de la variable real o compleja x en
carcter. Ejemplo: title(num2str(x))

xlabel(texto) aade una etiqueta al eje de abscisas. Con xlabel
off desaparece. Lo mismo ylabel(texto) o zlabel(texto)

text(x,y,'texto') introduce 'texto' en el lugar especificado por las
coordenadas x e y. Si x e y son vectores, el texto se repite por cada
par de elementos.

gtext('texto') introduce texto con ayuda del ratn.
Grficos 2D y 3D
Funciones de Matlab para grficos 2D y 3D

Imprimir grficos: Print (botn File en ventana grfica)

Guardar grficos: Save (botn File en ventana grfica): Se crea un
fichero .fig que podr volver a editarse y modificarse

Exportar grficos: Export (botn File en ventana grfica)

figure(n): Llamar una nueva figura o referirnos a una figura ya
hecha

close all borra todas las figuras, close(figure(n)) una en concreto

Prctica 5, segunda sesin
Representar las funciones:
y
1
= sin(3 x)/e
x

y
2
=cos(3 x)/e
x


con x variando entre 0 y 3 ,obteniendo una nica figura de la forma:






Grficos 2D y 3D
Representacin grfica de superficies

Creacin de una malla a partir de vectores [X, Y]=meshgrid(x,y)
Grfica de la malla construida sobre la superficie Z(X,Y):
mesh(X,Y,Z), meshc(X,Y,Z) (dibuja adems lneas de nivel en el
plano z=0)
Grfica de la superficie Z(X,Y): surf(X,Y,Z), surfc(X,Y,Z)
pcolor(Z) dibuja proyeccin con sombras de color sobre el plano (la
gama de colores est en consonancia con las variaciones de Z)
contour(X,Y,Z,v) y contour3(X,Y,Z,v) generan las lneas de nivel
de una superficie para los valores dados en v. Para etiquetar las
lneas, primero cs=contour(Z) (para saber los valores del contorno)
y luego clabel(cs) o directamente clabel(cs,v)



Ejemplo: main_dibujo_superficie.m y ver en Demos: Graphics
Grficos 2D y 3D
Representacin grfica de superficies
Diferentes formas de representar los polgonos coloreados:
shading flat: sombrea con color constante para cada polgono.
shading interp: sombrea calculado por interpolacin de colores
entre los vrtices de cada polgono
shading faceted: sombreado constante con lneas negras
superpuestas (opcin por defecto)

hidden off (desactiva la desaparicin de lneas escondidas),
hidden on (lo activa)

Manipulacin de grficos
view(azimut, elev), view([xd,yd,zd])
rotate(h,d,a) o rotate(h,d,a,o), h es el objeto, d es un vector
que indica la direccin, a un ngulo y o el origen de rotacin
En ventana grfica: View (camera toolbar)
Grficos 2D y 3D
Transformacin de coordenadas

[ang,rad]=cart2pol(x,y), de cartesianas a polares
[ang,rad,z]=cart2pol(x,y,z), de cartesianas a cilindricas

[x,y]=pol2cart(ang,rad), de polares a cartesianas
[x,y,z]=pol2cart(ang,rad,z), de cilindricas a cartesianas

[angx,angz,rad]=cart2sph(x,y,z), de cartesianas a esfericas
[x,y,z]=aph2cart(angx,angz,rad), de esfericas a cartesianas

Grficos 2D y 3D
Creacin de pelculas

Una pelcula se compone de varias imgenes (frames)

getframe se emplea para guardar todas esas imgenes. Devuelve
un vector columna con la informacin necesaria para reproducir la
imagen que se acaba de representar, por ejemplo con la funcin
plot. Esos vectores se almacenan en una matriz M.

movie(M,n,fps) representa n veces la pelcula almacenada en M a
una velocidad de fps imgenes por segundo
X=0:0.01:2*pi;
for j=1:10
plot(x,sin(j*x)/2)
M(j)=getframe;
end
movie(M,4,6)

Ejemplo: main_pelicula.m
Prctica 6, segunda sesin







Introduccin a la programacin en
Matlab.

Curso de iniciacin a MATLAB
Programacin
Ficheros de Matlab

Ficheros de programa: Se construyen mediante una secuencia de
comandos. El fichero principal se llamar main_nombre.m

Ficheros de funcin: para crear funciones propias. Son llamados
por los ficheros de programa.
La primera lnea es ejecutable y empieza por la palabra function
de la forma:
function arg_salida=funcion_nombre(arg_entrada, parametros)
El fichero se debe guardar como funcion_nombre.m

Comandos de entrada y salida:
input: permite introducir datos: ae=input(Teclee valor de
a);
disp: muestra un texto por pantalla: disp(El algoritmo no
ha convergido)

Programacin
Ficheros de Matlab
Los ficheros con extensin (.m) son ficheros de texto sin formato
(ASCII) y constituyen el sustento para la programacin en MatLab.
Estos ficheros pueden crearse y/o modificarse con un editor de textos
cualquiera aunque si trabajamos con MatLab lo mejor sera utilizar su
propio editor de textos, que es a su vez debugger.
Existen dos tipos de ficheros *.m, los ficheros de comandos (scripts) y
las funciones.

- script
- function
solicitud
ejecucin
Programacin
El editor debugger

Programacin
El editor debugger

Programacin
Bifurcaciones y bucles
MatLab posee un lenguaje de programacin propio que
dispone de sentencias para realizar bifurcaciones y
bucles.
Las bifurcaciones permiten realizar una u otra operacin
segn se cumpla o no una determinada condicin.
Los bucles permiten repetir las mismas o anlogas
operaciones sobre datos distintos.



Programacin: Bifurcaciones y bucles

En MatLab existen dos estructuras condicionales
fundamentales: una de ellas se conforma a partir de la
sentencia if y la otra a partir de la sentencia switch.



Sintaxis:
if <condicin>

<sentencias>
end
Sintaxis:
if <condicin 1>
<sentencias>
elseif <condicin 2>
<sentencias>
else
<sentencias>
end
Programacin: Bifurcaciones y bucles

Ejemplo de if simple


Ejemplo de if general




Programacin: Bifurcaciones y bucles

Sintaxis:
switch <expresin>
case <condicin>,
<sentencias>

otherwise
<sentencias>
end
Estructura condicional switch en su forma general:
Ejemplo
Programacin: bifurcaciones y bucles
Bucles
El bucle for repite un conjunto de instrucciones un nmero
predeterminado de veces.
La estructura del bucle for de MatLab es muy diferente a su homloga
en otros lenguajes como C/C++/Java, no contando esta con la misma
generalidad.







Ejemplo: main_bucles.

Sintaxis 1:
for <var-control>= <var-ini>:<paso>:<var-fin>
<sentencias>
end
Sintaxis 2:
for <var-control>= <vector-de-valores>
<sentencias>
end
Programacin: bifurcaciones y bucles
Bucles
Ejemplos








Programacin: bifurcaciones y bucles
Bucles
Los bucles se pueden anidar






Calcula la traspuesta




Sintaxis:
for <var-control1>= <var-ini1>:<paso1>:<var-fin1>
for <var-control2>= <var-ini2>:<paso2>:<var-fin2>
<sentencias>
end
end
Programacin: bifurcaciones y bucles
Bucle while



<condicin>puede ser una expresin vectorial o matricial.
Las instrucciones se ejecutarn mientras haya algn elemento distinto
de cero en la <condicin>, es decir, mientras haya algn o algunos
elementos true (1 lgico).
Ejemplo:
Races
cuadradas



Sintaxis:
while <condicin>
<sentencias>
end
Programacin: bifurcaciones y bucles
Sentencias
break hace que se termine la ejecucin del bucle for y/o while
ms interno de los que comprenden a dicha sentencia.
Ejemplo: se concatenan verticalmente todas las lneas no vacas
del fichero fft.m








Programacin: bifurcaciones y bucles
Sentencias
continue hace que se pase inmediatamente a la siguiente
iteracin del bucle for o while, saltando todas las sentencias
que hay entre el continue y el fin del bucle en la iteracin
actual.








Ejemplo: se
cuentan todas
las lneas no
vacas o
comentadas.
Programacin: Estructura try .. catch .. end

Permite gestionar los errores que se pueden producir en
tiempo de ejecucin.








Sintaxis:
try
<sentencias>
catch
<sentencias>
end
Programacin
Operadores relacionales









Programacin
Operadores lgicos









Programacin
Operadores lgicos









all(v)
Comprueba si todos los elementos del vector (v)
cumplen la condicin. Devuelve 0 o 1
all(A)
Se aplica por separado a cada columna de (A). El
resultado es un vector de ceros y unos.
any(v)
Comprueba si alguno de los elementos del vector
(v) cumplen la condicin. Devuelve 0 o 1
any(A)
Se aplica por separado a cada columna de (A). El
resultado es un vector de ceros y unos.
find(v)
Determina los ndices de elementos de (v) que
cumplen la condicin.
find(A)
Cuando se aplica a una matriz esta se considera
como un vector (una columna traz otra)
Programacin
Lectura y escritura de ficheros externos
La lectura y escritura de informacin en ficheros externos
se lleva a cabo esencialmente con los comandos
fread y fscanf para lectura
fprintf y fwrite para escritura
El procedimiento general en todos los casos es:
Abrir el fichero del que se desea leer o en el cual
deseamos escribir.
Colocar el puntero de lectura o escritura en la posicin
deseada.
Leer o escribir las variables.
Cerrar el fichero.

Programacin: lectura y escritura de
ficheros externos
Abrir el fichero el comando es fopen y su estructura
[fi,texto]=fopen(nombre de fichero,c)
fi nmero identificador de fichero, -1 es que el fichero no
se ha podido abrir.
texto mensaje para caso de que se produzca un error
c carcter que indica el tipo de operacin que se desea
realizar.
r lectura (read)
w escritura reemplazo (write)
a escritura a continuacin (apped)
r+ lectura y escritura

Programacin: lectura y escritura de
ficheros externos
Cerrar ficheros el comando es fclose y su estructura
st=fclose(fi)
st es un valor de retorno para posibles condiciones de
error.
st=fclose(all)
cerrar todos los ficheros a la vez.

Posicionamiento del puntero.
1. Posicionar el puntero al inicio del archivo con nmero
de identificacin fi:
frewind(fi)

Programacin: lectura y escritura de
ficheros externos
Lectura de datos formateados
[datos,contador]=fscanf(ident,formato,cuantos)
1.-Lee datos del archivo ident.
2.-Los datos ledos se guardan en datos.
3.-cuantos, indica cuntos datos vamos a leer.
.-un escalar k
.-un vector[n,m], en este caso se leern los datos necesarios para
rellenar una matriz de orden n x m columna a columna.
.-inf todos los datos del archivo.
4.-La variable contador indica cuntos se han ledo con xito.
5.-La variable formato indica el formato de lectura.
%d: decimales
%e: notacin exponencial
%f: pto. fijo
%g: no considera los ceros no significativos.
%s: variable carcter

Programacin: lectura y escritura de
ficheros externos
Lectura de datos no formateados
datos=fread(ident,cuantos,precision)
Escritura en fichero
Escritura de datos formateados:
contador=fprintf(ident,formato,datos,controles)
Ejemplo: fprintf(fi,El nmero de ecuaciones es: %d\n,n)
fprintf(fi,El nmero de ecuaciones es: %d\n,n)
\n lnea nueva
\t avanza hasta la siguiente posicin de tabulador
Escritura de datos no formateados:
contador=fwrite(ident,datos,precision)

Programacin: importar datos
Importar datos de otras aplicaciones
Copy y Paste para copiar datos de la aplicacin original y depositarlos
entre los corchetes de una matriz o vector, en una lnea de comandos
de MATLAB. Tiene el inconveniente de que estos datos no se pueden
editar.
Crear un fichero *.m con un editor de textos.
Leer un flat file escrito con caracteres ASCII. Un flat file es un fichero
con filas de longitud constante separadas con Intro, y varios datos por
fila separados por blancos. Estos ficheros pueden ser ledos desde
MATLAB con el comando load. Si se ejecuta load datos.txt el
contenido del flat file se deposita en una matriz con el nombre datos.
Por ejemplo: crear un fichero llamado flat.txt que contenga las lneas:
23.456 56.032 67.802
3.749 -98.906 34.910
El comando A=load('flat.txt') leer estos valores y los asignar a la
matriz A.

Programacin: lectura y escritura de
ficheros externos
Importar datos de otras aplicaciones
El comando xlread:
[num,text]=xlsread(NombreArchivo,Hoja,Rango)
num: matriz de tipo numrico en el cual se guarda todos los datos
numricos encontrados dentro de la hoja y rango especificado.
text: matriz de tipo celda donde se guardaran todas las cadenas que
sean encontradas dentro de la hoja y rango especificado. Cada
cadena se guarda en una celda dentro de la matriz.
NombreArchivo: Nombre o ruta del archivo a leer. Este parmetro
debe ser una cadena de caracteres.
Hoja: Hoja a leer (Hoja1) Este parmetro debe ser una cadena de
caracteres (distingue maysculas y minsculas).
Rango: rango de celdas donde leer la informacin. Este parmetro
debe ser una cadena ej. A2:B5

Programacin: lectura y escritura de
ficheros externos
Importar datos de otras aplicaciones
Forma interactiva de xlsread donde se pueden seleccionar la hoja y
las celdas directamente de excel, para usarlo se llama de la
siguiente manera:
[num,text]=xlsread(NombreArchivo,-1)
Cuando se ejecuta ese comando se abre Excel con el archivo
solicitado y se abre un popup de MatLab donde te dice que
selecciones las celdas que requieres y al final dar clic al boton ok.
El comando textread permite leer datos de cualquier tipo de un
fichero siempre que estn convenientemente separados. Ver el
Help para ms informacin.
Leer datos de un fichero con las funciones fopen y fread.
Otros mtodos posibles: escribir funciones en C para traducir a
formato *.mat (y cargar despus con load), crear un fichero
ejecutable *.mex que lea los datos, etc.

Programacin: Ejemplo
Lectura y escritura de ficheros externos
Problema para lectura de datos
Nombre Clculo lgebra Fsica Estadstica
Fernando Gmez Pereira 3 6 5 7
Susana Rodrguez Prez 7 4 3 1
Carlos Leis lvarez 8 9 7 9
Arturo Gmez lvarez 5 4 5 9
Silvia Tais lvarez 10 9 10 9
Andrea Gallego Nimes 3 3 2 4
Alicia Caballero Leis 6 8 8 5
Antonio Fraga Gmez 5 7 6 5
Beatriz Machado Gmez 4 3 5 4
Laura Tobo Manzanal 7 8 5 9
Juan Rico Fraga 4 7 5 5
Andrs Pena Gmez 6 8 5 6
Luis Blanco Villa 8 6 6 4
Sandra Puentes Gallego 9 9 7 9
Isolina Prieto Gmez 5 5 6 6
Teresa Sieiro Gon 4 2 5 3
Ricardo Lpez Amigo 8 6 2 9

Introduccin al Anlisis de datos

Curso de iniciacin a MATLAB
Anlisis de datos
Para realizar con Matlab anlisis estadsticos de un conjunto de
datos estos deben ser almacenados utilizando matrices. Cada
columna de la matriz representar una variable medida y cada fila
los valores que toman las variables consideradas en un
determinado punto de medida.

Clculo del mnimo, mximo, media y mediana.
[y,k]=min(x)
[y,k]=max(x)
m=mean(y)
me=median(y) (la mediana de un conjunto de nmeros
ordenados en magnitud es o el valor central o la media de los 2
valores centrales).
Desviacin tpica.
s=std(y)
Nos da la dispersin o variacin de los datos para dar una idea de cuan
esparcidos estn.
( )
|
|
.
|

\
|

=

N
y i y
y std
i
2
) (
) (
Coeficientes de correlacin y matriz de covarianza
r=corrcoef([x,y])
Nos da el grado de relacin entre x e y.



En el caso de matrices S=cov(X) nos dara la matriz de covarianza y su
diagonal se llama vector de varianzas = desviaciones tpicas al cuadrado.

( )( )


= =
=
=
N
i
N
i
N
i
i y i x
i y i x
r
1
2
1
2
1
) ( ) (
) ( ) (
Anlisis de datos
Ejemplo1:
R=corrcoef(califica)
|
|
|
|
|
.
|

\
|
0000 . 1 3332 . 0 6089 . 0 4628 . 0
3332 . 0 0000 . 1 6164 . 0 4563 . 0
6089 . 0 6164 . 0 0000 . 1 6438 . 0
4628 . 0 4563 . 0 6438 . 0 0000 . 1
R(2,3) = R(3,2) ; R(4,3) poca relacin entre fsica y estadstica
Para calcular la covarianza (numerador de la expresin r=...)
s=cov([x,y])
1
) ( ) (
1

=

=
N
i y i x
s
N
i
Anlisis de datos
Grficos estadsticos.
Histograma:
>>hist(y)
Ejemplo2:
y=rand(40,1);
hist(y)

Variantes: hist(y,n) (con n subintervalos de clases regulares); hist(y,x);
[n,p]=hist(y)
Grfico de barras:
bar(y)
Perfil de muestra:
stairs(y)
stem(x,y)
Anlisis de datos
Grfico de errores:
errorbar(x,y,e)
Histograma angular:
rose similar a hist pero realiza un histograma angular los valores de la
muestra es de ngulos en radianes.

Curvas de regresin
p=polyfit(x,y,n)
Calcula el polinomio de regresin de grado n; es decir el polinomio p de
grado n que minimiza.
( )
2
1
) (

=

N
i
i i
y x p
Anlisis de datos
Interpolacin uni y bidimensional
.-1D
vector_y=interp1(x,y,vector_x,opcion)
opcion:
-linear: interpolacin lineal
-cubic :interpolacin cbica
-spline: interpolacin spline cbica (ptos de interpolacin igualmente
espaciados).

.-2D
matriz_Z=interp2(X,Y,Z,matriz_X,matriz_Y,opcion)
opcion:
-bilinear: interpolacin lineal
-bicubic :interpolacin cbica
-nearest

Anlisis de datos
Ejercicio7.1:
La tabla siguiente recoge el peso de 30 estudiantes. Construir sobre una
misma ventana las 4 figuras siguientes:
1.-Un histograma de frecuencias con el ox peso y oy frecuencia de valores.
2.-El polgono de frecuencias, curva obtenida entre los puntos definidos por
las marcas de clase y la frecuencia.
3.-El perfil de muestra mediante stairs
4.-El perfil de muestra mediante stem.
5.-Calcular el mximo y mnimo peso y la media de pesos.

71 82 65 75 77 91 59 84 89 81
73 91 82 75 96 85 69 76 81 92
84 79 77 95 81 79 84 85 76 82
Anlisis de datos
Prctica
Se ha medido experimentalmente la conductividad elctrica del acero a
distintas temperaturas, recogindose los siguientes valores:
Obtener los polinomios de regresin de primero y segundo grado. Calcular
para los polinomios obtenidos cul sera el valor estimado de la
conductividad elctrica a los 600 y a los 1000C.
T(C) K(Ocm)
-1

100 51813
300 28571
500 17483
700 11696
900 9116
Anlisis de datos
Prctica
[x,y]=meshgrid(-3:1:3);
z=peaks(x,y);
Dada esta funcin ver la diferencia entre la interpolacin nearest, bilinear y
bicubic
Anlisis de datos
Introduccin al uso de interfaces
grficas de usuario GUI con Matlab

Curso de iniciacin a MATLAB
Uso del GUI
Cmo crear una Interfaz Grfica de Usuario
Desde cero
GUIDE.
Distribucin de los elementos que la componen
(botones, textos, paneles, desplegables),
GUIDE compilar estos elementos en un fichero
con extensin:
.fig contiene el entorno grfico de nuestro proyecto
.m contiene las funciones necesarias que permiten
ejecutar nuestro interface (programa que contiene
todas las funcionalidades que deseemos)

Uso del GUI
Uso del GUI



Inspector de atributos: botn derecho.
String que es el texto del botn (Push Button) o el
BackgroundColor (gris medio), es decir es el mensaje
en texto que se muestra en la interface.
Tag: dar un nombre concreto, suministrndole su
handles. Es el nombre por representacin que tiene la
funcin, es que el se usar para poder programar algo
sobre l.
UserData: almacenar datos del tipo que queramos
(nmeros, textos).


Uso del GUI






Modificar y acceder a un objeto concreto: funcin findobj().
Por ejemplo:
h_boton = findobj('Tag', 'pushbutton1');
Esta funcin nos devolver la handle que apunta a la entidad cuya etiqueta
(Tag) es pushbutton1.
Para acceder a la parte del programa donde se ejecutan las propiedades
del botn: botn derecho View Callbacks Callback

Una vez que hemos encontrado el objeto podemos leer los valores de sus atributos
con funciones get() y modificarlos con set().
get se obtiene los valores de un objeto
set asigna valores a un parmetro especfico de un objeto

get(handles.nombre_del_objeto,parmetro)
set(handles.nombre_del_objeto,parmetro,valor)


Uso del GUI






La interaccin con la GUI a nivel de programacin se realiza
en base a encontrar la handles del objeto, consultar sus
propiedades, modificarlas y recuperarlas.
Esto se aplica a cualquier elemento presente en una GUI:
cajetines,
botones de radio,
grficas
Pero no slo a estos, si no a otros objetos que conforman otros
ms complejos. Por ejemplo en una grfica tenemos:
los ejes de coordenadas,
los datos,
la lnea que representa los datos,
las leyendas, etc.
Uso del GUI