Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BIOMDICA.
Gua para la realizacin de los
trabajos (I)
Introduccin al Matlab
Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
1
Arrancamos Matlab.....
2
Algunas cuestiones.......
Constantes y valores
especiales
3
Primeras pruebas........... En Matlab cada objeto es una MATRIZ; un escalar es
una matriz de 1x1; un vector fila es una matriz de
En la pantalla de comandos escribimos... 1xN y un vector columna es una matriz de Nx1;
visto los ejemplos anteriores (que son lo ms
generales posibles) introduce un escalar, un vector
fila y un vector columna.
y debemos ver:
qu ocurre si repites la Para obtener elementos dentro de una matriz la
instruccin con ; al final filosofa es siempre la misma; primero se indican las
de la instruccin?? filas y luego las columnas:
Prueba ahora
Qu hace el operador ?
A(2,3) A([1 2],[1 2]) A([1 2 3],[2 3])
Seras capaz de introducir las siguientes y ahora t!!!
matrices?
Mira el espacio de trabajo y Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
comprueba lo que tienes.
4
El operador : Genera en Matlab la siguiente matriz y
localiza, usando el operador: las matrices
Existe un operador bsico en Matlab; este operador que se marcan
es : (dos puntos); tiene dos funciones:
a) Localizar elementos dentro de una matriz (lo visto
anteriormente puede resultar bastante pesado)
b) Generar vectores.
LOCALIZAR ELEMENTOS
El uso es siempre el mismo El otro uso que se le da (bastante
VALOR INICIAL:INCREMENTO:VALOR FINAL; extendido en el procesado digital de
si el incremento es 1 se puede no indicar; si se quieren seales) es el de generar vectores:
todas las filas o todas las columnas se indica Ejemplos:
directamente con : Vector de 1 a 100: >>v=1:1:100
Pares de 0 a 50 >>p=0:2:50
Vector temporal de 0 a 1 segundo en
intervalos de milisegundos:
>>v=0:0.001:1
Intenta generar ahora t los siguientes
vectores
A([1 2],[1 2]) A([1 2 3],[2 3]) A([2 3],[1 2]) Impares de1 a 100; vector temporal de 0 a
A(1:1:2,1:1:2) A(1:1:3,2:1:3) A(2:1:3,1:1:2) 2 segundos (intervalo: 2 dcimas de
segundo); pares de 100 a 0
A(1:2,1:2) A(1:3,2:3) A(2:3,1:2) (clave:intervalo!!!)
Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
A(:,2:3)
5
CUANDO SE APLIQUEN A MATRICES HAY QUE
Operaciones aritmticas (I) RESPETAR LAS REGLAS DE LA OPERACIN
(ERROR MS COMN!!!); por ejemplo si tenemos
A*B el nmero de columnas de A debe ser igual al
nmero de filas de B; para sumar/restar deben tener
la misma dimensin
A\B=inversa(A)*B; A/
B=A*inversa(B); cuidado que no es
lo mismo A*B que A*B en
matrices!!!!!!!
Una primera aplicacin muy til (con lo
que sabemos!!!!); resolver sistemas de
ecuaciones lineales. A modo de ejemplo
7
Seguimos....... Todas las instrucciones se manejan
igual; primero se define el nmero
Matrices especiales de filas y de columnas; por ejemplo
una matriz de unos de tamao 3x2
sera ones(3,2); otro ejemplo: un
vector fila con 20 ceros sera
zeros(1,20). CUIDADO: si slo se
usa un argumento (N) se supone
que es una matriz cuadrada de
tamao NxN; por ejemplo si
ponemos A=zeros(10) nos generar
una matriz de tamao 10x10.
Operaciones sobre matrices
Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
8
Operadores relacionales y lgicos
Operadores
relacionales
Hay que tener cuidado con estos Ejercicio: a) genera una matriz X de nmeros aleatorios
operadores porque se aplican a TODOS entre 0 y 1 de tamao 4x2; b) observa la matriz; c)
los elementos de la matriz/vector determina C=X>0.5; d) visualiza C...qu observas?
9
Ms instrucciones tiles para nuestro trabajo
l=length(v) Si v es un vector devuelve la longitud del vector.
10
Celdas y texto
Matlab dispone de otro tipo de elementos que nos van a aparecer en este curso: las
celdas. Estos elementos son como matrices pero en los que, en cada elemento de la
celda se puede definir cualquier cosa (una matriz, texto, etc). La instruccin para definir
una celda de tamao mxn es cell(m,n).
A nivel de ejemplo quiero definir una celda (c) de tamao 2x2 con diferentes
elementos; ejecuta las siguientes instrucciones: x=cell(3,2); x{1,1}='Pepe';
x{1,2}=randn(1,10); x{2,1}=eye(2); x{2,2}='Atpico';
x{3,1}=[0.1 0.2]; x{3,2}='Si';
Del ejemplo hay que destacar la dos diferencias con cualquier matriz vista hasta ahora:
puedo tener diferentes elementos (texto y numricos) y a los elementos de las celdas
no se accede con los parntesis () sino que se usan las llaves {}.
Ejercicio: define una celda de tamao 2x2 con los siguientes elementos: tu nombre;
vector columna de unos (10 elementos); matriz aleatoria 3x3; primer apellido);
determina posteriormente el valor medio de la matriz aleatoria.
Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
11
Primeras grficas (I)
Matlab es un lenguaje que ofrece gran cantidad de posibilidades grficas (aqu veremos las ms
sencillas!!!!); en el tema de preprocesado veremos otras. Teclea lo siguiente en la pantalla de
comandos (tras el ; pulsa enter) x=0:pi/100:100;y=sin(x); plot(x,y); Entiendes las etapas?; lo
obtenido?; usa help para aprender la funcin sin (LA AYUDA DE MATLAB ES
IMPRESCINDIBLE!!).
Se pueden modificar todos los parmetros del grfico Si queremos ahora cerrar pantallas grficas se
usando instrucciones pero hay un modo ms fcil: usa close(i) donde i es el ndice de la
a) En la pantalla grfica pulsa el icono pantalla que queremos cerrar; si queremos
b) Seguidamente pulsa dos veces (rpido) sobre cerrarlas todas usamos close all; si lo que
cualquier elemento de la grfica abrindose un men queremos es borrar usamos clf(i)
donde puedes modificarlo TODO Ejercicio:Tomando las anteriores grficas;
Ejercicio: En la figura anterior modifica el tamao, comprueba el uso de estas instrucciones.
tipo y color de la lnea; pon etiquetas a los ejes, ttulo
a la grfica y ponle una rejilla a la figura. Ahora queremos comparar dos resultados EN
LA MISMA GRFICA; para ello se usa la
Matlab, por defecto, siempre usa la misma ventana instruccin hold on; a partir de esta
grfica; si queremos hacer otra figura y que Matlab instruccin todas las grficas irn a la
no nos machaque la anterior hay que usar la misma pantalla para desactivarla se usa
instruccin figure (sin argumentos) antes de hold off; Ejercicio: Representa, en la
hacer la nueva figura. misma grfica un coseno y seno de un ngulo
Ejercicio:Tomando como base lo anteriormente visto que vara de 0 a en intervalos de
representa, en otra figura, coseno(x), instruccin cos 0.001 .
Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
donde x ahora va de 0 a 4 en intervalos de 0.1
12
Primeras grficas (II) Se pueden combinar diferentes
tipos de subplot; teclea el
Ahora quiero dividir la pantalla grfica en siguiente ejemplo y observa el
varias partes para poner varios resultado.
resultados; la forma de hacer es con la Hay que tener en cuenta que, si
instruccin subplot(mns), donde m,n quieres hacer algo sobre alguna
y s son parmetros. Para entenderlo se grfica primero le tienes que
considera la divisin de la pantalla como indicar a MATLAB la grfica
una matriz; m es el nmero de filas y n es mediante esta instruccin.
el nmero de columnas siendo s el ndice
Para limpiar cualquier una determinada grfica
que indica en qu divisin va la siguiente
cuando se tienen varias porque se ha usado
figura (se numera la divisin de izquierda
subplot; primero se indica cual se quiere borrar
a derecha y de arriba abajo).
(usando subplot!!!!) y, posteriormente, se usa el
Teclea los siguientes ejemplo, intenta
comando cla. Como ejercicio intenta limpiar la
comprender todos los pasos y lo que
grfica superior izquierda del ltimo ejemplo.
obtienes
13
Ficheros (I).
Matlab puede cargar diferentes tipos
de ficheros; la instruccin a utilizar
es load (mirar la ayuda) para
ficheros .mat, .dat, .txt; xlsread
para ficheros excel; imread para
imgenes...... Ms fcil es usar el
asistente de Matlab que nos facilita
la tarea; la secuencia a seguir es File-
Import Data. Se nos abrir un men
tpico de bsqueda de archivos y,
cuando encontremos el que
buscamos, tendremos algo parecido
a la siguiente pantalla (puede
cambiar el aspecto segn la
versin); escogemos las variables de
inters y pulsamos Finish
Ejercicio: Intenta cargar los ficheros radondata.txt; ecg.mat cuando hagas una carga y
compruebes que tienes las variables en memoria, brralas (te acuerdas cmo?)
antes de cargar el siguiente fichero. Representa las variables del fichero ecg.mat;
qu son?
Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
14
Ficheros (II).
Hemos terminado de trabajar y queremos guardar nuestro trabajo; la
instruccin a usar es save; de la siguiente forma
save variables a guardar nombre del fichero opciones;
por ejemplo si usamos save A rollo guardaremos la variable A en el fichero rollo.mat; si no
especificamos ninguna variable guardar todas. A continuacin se muestran las opciones
de tipo de dato guardado y versin de Matlab que podra leer el fichero guardado
15
Bucles y condicionales (I)
En el anlisis de datos aparecen determinados bucles y condicionales para variar
las condiciones iniciales de bsqueda de los parmetros por lo que hay que
conocer las instrucciones bsicas y clsicas.
El bucle for se utiliza cuando se conoce el nmero de veces que hay que realizar
una operacin; por ejemplo, supongamos que queremos calcular la suma de los
elementos de un vector x; la siguiente secuencia de instrucciones lo hace; 1)
definir el vector x; 2) suma=0; 3) l=length(x); 4) for k=1:l, suma=suma+v(k); end
5) suma ..ES IMPORTANTE QUE ENTIENDAS LOS PASOS REALIZADOS.
16
Bucles y condicionales (II)
BUCLE WHILE Mientras se cumpla la condicin se realizar la accin;
Expresin en Matlab otra vez cuidado con el end final SIEMPRE HAY QUE
while condicin PONERLO; fuente de error comn!!!. Aqu otro error
ACCIN comn es no verificar que la condicin no se cumple
end en algn momento.
El bucle while se utiliza cuando NO se conoce el nmero de veces que hay que
realizar una operacin; pero esa operacin depende de una condicin. El
ejemplo de la suma anterior sera 1) definir el vector x; 2) suma=0; 3) l=length(x);
4) while l>0 suma=suma+v(l); l=l-1; end 5) suma ..ES IMPORTANTE QUE
ENTIENDAS LOS PASOS REALIZADOS. Ejercicio: intenta repetir el ejercicio del
factorial con el bucle while
CONDICIONALES Si se cumple la condicin se realizar la accin 1; en caso
Expresin en Matlab contrario se realiza la accin 2; otra vez cuidado con el end
if condicin final SIEMPRE HAY QUE PONERLO; fuente de error
ACCIN 1 comn!!!. La parte del else se puede eliminar. Adems se
else pueden encadenar varios if con la instruccin elseif (MIRA
ACCIN 2 LA AYUDA). Esta instruccin la usaremos a continuacin
end Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
17
Ficheros .m
Si queremos combinar muchas instrucciones (programar!!!); tenemos que ponerlas
juntas en un fichero y decrselo a MATLAB. Los pasos a seguir 1) seran pulsar el
icono de la hoja en blanco (editor); 2) se escriben las instrucciones en el editor; 3) se
guarda con la extensin .m (no se empieza con nmero ni dejes espacios en blanco) y
asegrate de guardarlo en tu directorio de trabajo o en el path (MIRA LA AYUDA); 4)
ejectalo desde la pantalla de comandos escribiendo el nombre del programa.
El anterior fichero se conoce como script; existe otro tipo de fichero que son las
funciones en las que se les pueden pasar unos parmetros. Se sigue la misma secuencia
que en el caso anterior pero aparecen dos diferencias; a) la cabecera PRIMERA
LNEA DEL PROGRAMA que tendra la siguiente forma
function [a,b,...z]=nombre(p1,p2,..pn) donde a,b...z son los parmetros de salida de
la funcin y p1,p2,...pn los parmetros de la funcin; b) la funcin se guarda con
nombre.m.La manera de ejecutarlo desde la lnea de comandos sera de la misma
forma que en la primera lnea de dicha funcin
18
Acabamos......
Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
19
MASTER DE INGENIERA
BIOMDICA.
Gua para la realizacin de los
trabajos (I)
Introduccin al Matlab
Profesores: Emilio Soria y Antonio Jos Serrano, Dpto Ingeniera Electrnica, ETSE
20