1 / 27

Facultad de Ingeniería UNIVERSIDAD DE MENDOZA Pasaje Descote750 5500 Mendoza República Argentina Teléfono 061-201872

Facultad de Ingeniería UNIVERSIDAD DE MENDOZA Pasaje Descote750 5500 Mendoza República Argentina Teléfono 061-201872. Curso “ Experimentación con Bases de Datos de señales cardiológicas. Recursos de Physionet . ” DICTADO POR: dR. Ing. jesús Rubén Azor montoya 2011. Matrices

josh
Download Presentation

Facultad de Ingeniería UNIVERSIDAD DE MENDOZA Pasaje Descote750 5500 Mendoza República Argentina Teléfono 061-201872

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Facultad de Ingeniería UNIVERSIDAD DE MENDOZA Pasaje Descote7505500 MendozaRepública ArgentinaTeléfono 061-201872 Curso “Experimentación con Bases de Datos de señales cardiológicas. Recursos de Physionet. ” DICTADO POR: dR. Ing. jesús Rubén Azor montoya 2011

  2. Matrices • MATLAB trabaja esencialmente con un solo tipo de objetos – una matriz numérica rectangular con elementos que pueden ser complejos- todas las variables representan matrices. Las matrices 1-por-1 son interpretadas como escalares y las matrices con sólo una fila o columna son interpretadas como vectores. • Las matrices pueden ser incorporadas a MATLAB en diversas formas: • Ingresadas por una lista explícita de elementos. • Generadas por sentencias o funciones incorporadas (built-in). • Creadas en un archivo M. • Cargadas desde archivos de datos externos.

  3. Ingresadas por una lista explícita de elementos. Por ejemplo, una u otra de las sentencias A = [1 2 3; 4 5 6; 7 8 9] Y A = [ 1 2 3 4 5 6 7 8 9 ] crean la matriz 3-por-3 y la asigna a la variable A. Inténtelo. Los elementos dentro de una fila de una matriz pueden estar separados por comas así también como por un espacio.

  4. Generadas por sentencias o funciones incorporadas (built-in). Funciones incorporadas (built-in) como rand o magic, por citar algunas, proveen una forma fácil de crear matrices con las cuales experimentar. El comando rand(n) creará una matriz n-por-n con elementos generados aleatoriamente con distribución uniforme entre 0 y 1, mientras que rand(m,n) creará una matriz m-por-n Como segundo ejemplo, magic(n) creará una matriz de enteros la cual es un cuadrado mágico (filas y columnas tienen la misma suma)

  5. Creadas en un archivo M. MATLAB puede ejecutar una secuencia de sentencias almacenadas sobre archivos de disco. Tales archivos son llamados “M-files” porque deben tener extensión “.m”. Hay dos clases de archivos M: script y function. Los archivos script son frecuentemente usados para ingresar datos en una gran matriz, en un archivo de este tipo los errores pueden ser fácilmente editados. Si, por ejemplo, se ingresa en un archivo de disco data.m a través de un simple editor como Notepad (Block de notas) con la siguiente estructura A = [ 1 2 3 4 ; 5 6 7 8 ] Se obtiene

  6. Cargadas desde archivos de datos externos En ocasiones, los datos pueden estar presentes en archivos externos con distintas extensiones pero en formato ascii. Para recuperarlos desde Matlab en forma de matriz se utiliza función load. A modo de ejemplo, cree desde el Bloc de Notas un archivo con la siguiente estructura y denomínelo data.txt: Recupere los datos en la matriz datos con la instrucción

  7. Carga de una matriz a un archivos de datos externo Esta es la operación inversa a la anterior. Aquí los datos están presentes en una variable interna en forma de matriz y se pretende guardarla en un archivo externo con alguna extensión, pero en formato ascii. Para lograr esto desde Matlab, se utiliza función save. A modo de ejemplo, cree la siguiente matriz de datos: Abriendo ahora el archivo creado (matriz.txt) con el Block de notas, se puede visualizar el contenido de la matriz

  8. Archivos binarios (.mat) Para guardar todo el contenido del espacio de trabajo (workspace) se utiliza el comando save. Por ejemplo, save c:\datos\sesion guarda todo el contenido del espacio de trabajo en el archivo sesion.mat (MATLAB añade automáticamente la extensión mat, de ahí que los archivos así generados se conozcan como archivos MAT). Es posible guardar sólo variables concretas especificando el nombre de las mismas después del nombre del archivo. Por ejemplo, save c:\datos\sesion x y z sólo guarda las variables x, y y z en el archivo sesion.mat. Por defecto los datos se almacenan en formato binario (no legible por nosotros), pero es posible hacerlo en formato ASCII (legible, como ya se ha visto) añadiendo el modificador -ascii al final de la instrucción.

  9. Archivos binarios (Ejemplos) Se define una matriz numérica asignada a una variable M:

  10. Seccionamiento de una matriz Dada una matriz numérica asignada a una variable M, de m filas y n columnas, se pueden definir submatrices tales como:

  11. Creación de vectores Los vectores son casos particulares de matrices (una sola columna o una sola fila). Ejemplo: >> i=1:3; % Se define un rango de valores para el índice i v(i)=i.^2 % Se crea el vector fila v cuyos elementos son i2. v = 1 4 9 El punto posterior a la i indica que cada elemento del “vector” i se debe elevar al cuadrado. De otro modo (de no tener el punto) intentaría elevar dicho “vector” al cuadrado, lo que no sería posible ya que las dimensiones del mismo son 1 x 3.

  12. Funciones de graficación en MATLAB Se hará mención a dos herramientas que permitirán trabajar más eficientemente con Matlab. La primera es la alternativa de dejar una "traza" documental mediante el software Word de las operaciones realizadas con Matlab. Para ello se ejecuta el comando notebook Una vez ejecutado el mismo, se abre una hoja de Word que permite actuar interactivamente con Matlab. Esto es, se escribe en el Procesador de Texto (Word) una sentencia válida de Matlab y accionando las teclas ctrl+enter se ejecuta la sentencia apareciendo el resultado en Word. De este modo se puede componer un documento "vivo" desde el procesador que “trace” todas las acciones realizadas.

  13. Funciones de graficación en MATLAB La segunda alternativa es la creación de una función, para usarla posteriormente por su nombre. Hay dos opciones, pudiéndose elegir cualquiera de ellas sin mengua en su acción. Una de ellas, como la sentencia que se muestra debajo, crea una función llamada sqr que encuentra el cuadrado de un número. Cuando se llama esa función, MATLAB asigna el valor que se pasa en la variable x, y luego usa x en la ecuación x.^2: >> sqr = @(x) x.^2; Para ejecutar la función sqr escriba, por ejemplo >> a = sqr(5) a = 25

  14. Funciones de graficación en MATLAB Ezplot Función graficadora de fácil uso. ezplot(fun) grafica la expresión fun(x) sobre el dominio default -2p < x < 2p. >> ezplot('sin(x)’)

  15. Funciones de graficación en MATLAB >> ezplot('x^2',[-2,2]) >> ezplot('(x^2)/4+(y^2)/9-1',[-3,3],[-3,3])

  16. Funciones de graficación en MATLAB PLOT(X,Y) grafica el vector Y versus el vector X. si X o Y es una matriz, entonces el vector es graficado versus las filas o columnas de la matriz, lo que se alinea. >> x=[1 2 3 4];y=[2 4 8 16;1 2 3 4]; >> plot(x,y)

  17. Funciones de graficación en MATLAB Se pueden obtener varios tipos de líneas, símbolos y colores con PLOT(X,Y,S) donde S es una cadena de caracteres hecha desde un elemento desde las siguientes 3 columnas: b blue . point - solid g green o circle : dotted r red x x-mark -. dashdot c cyan + plus -- dashed m magenta * star (none) no line y yellow s square k black d diamond w white v triangle (down) ^ triangle (up) < triangle (left) > triangle (right) p pentagram h hexagram

  18. Funciones de graficación en MATLAB X=[1 2 3 4];Y=[2 4 8 16]; plot(X,Y,'b+:') Grafica una línea de puntos (:) azul (b) con un signo más (+) en cada punto dato

  19. Funciones de graficación en MATLAB • Existen además otras funciones orientadas a añadir títulos al gráfico, a cada uno de los ejes, a dibujar una cuadrícula auxiliar, a introducir texto, etc. Estas funciones son las siguientes: • title('título') añade un título al dibujo • xlabel('tal') añade una etiqueta al eje de abscisas. Con xlabel off desaparece • ylabel('cual') añade una etiqueta al eje de ordenadas. Con ylabel off desaparece • 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. Si texto es también un vector de cadenas de texto de la misma dimensión, cada elemento se escribe en las coordenadas correspondientes • gtext('texto') introduce texto con ayuda del ratón: el cursor cambia de forma y se espera un clic para introducir el texto en esa posición • legend() define rótulos para las distintas líneas o ejes utilizados en la figura. Para más detalle, consultar el Help • grid activa la inclusión de una cuadrícula en el dibujo. Con grid off desaparece la cuadrícula

  20. COMANDO SUBPLOT Una ventana gráfica se puede dividir en m particiones horizontales y n verticales, con el objeto de representar múltiples gráficos en ella. Cada una de estas subventanas tiene sus propios ejes, aunque otras propiedades son comunes a toda la figura. La forma general de este comando es: subplot(m,n,i)  donde my nson el número de subdivisiones en filas y columnas, e ies la subdivisión que se convierte en activa. Las subdivisiones se numeran consecutivamente empezando por las de la primera fila, siguiendo por las de la segunda, etc.

  21. COMANDO SUBPLOT Sean las siguientes en Matlab >> x=0:0.01:pi; >> y=sin(x); z=cos(x); w=exp(-x*.1).*y; v=y.*z; subplot(2,2,1), plot(x,y) subplot(2,2,2), plot(x,z) subplot(2,2,3), plot(x,w) subplot(2,2,4), plot(x,v)

  22. Otras funciones gráficas bar() crea diagramas de barras barh() diagramas de barras horizontales bar3() diagramas de barras con aspecto 3-D bar3h() diagramas de barras horizontales con aspecto 3-D pie() gráficos con forma de “tarta” pie3() gráficos con forma de “tarta” y aspecto 3-D area() similar plot(), pero rellenando en ordenadas de 0 a y stairs() función análoga a bar() sin líneas internas errorbar() representa sobre una gráfica –mediante barras– valores de errores hist() dibuja histogramas de un vector rose() histograma de ángulos (en radianes)

  23. Graficación desde un archivo ascii El archivo que contiene los datos está en el disco rígido C en la carpeta llamada “datos”, con el nombre “dat10.txt” y ha sido obtenido desde el recurso ubicado en www.physionet.org. >> load c:\datos\dat10.txt En la variable dat10 quedan almacenados los valores contenidos en el archivo. Para conocer la dimensión del arreglo, se tipea: >> size(dat10) ans = 17101 3 Lo que implica que dat10 tiene 17101 filas y 3 columnas. La primera columna indica el instante en que se toma la muestra y las otras dos, las tensiones de dos derivaciones del ECG.

  24. Graficación desde un archivo ascii A partir de estos datos, se puede graficar la salida de la primera graficación (contra el tiempo) de la siguiente manera: >> x=dat10(:,1); % lee la columna 1 (en seg) y la guarda en x >> y=dat10(:,2); % lee la columna 2 (en mV) y la guarda en y >> plot(x(1:1000),y(1:1000))

  25. Transformada de Fourier de una señal La Transformada de Fourier de una señal permite analizar sus composición frecuencial. Considerando la señal anterior (y), se ejecutan las siguientes instrucciones: >> H=abs(fft(y-mean(y))); % Trans. De Fourier en valor absoluto >> plot(H(1:5000))

  26. Transformada de Fourier de una señal Como se puede observar en el gráfico anterior, en el eje de abscisas se representan los índices de cada muestra. Para que quede en frecuencia (Hz) es necesario conocer con qué tasa de muestreo ha sido adquirida la señal. Esto es posible hacerlo desde la primera columna observando el tiempo entre muestra y muestra. >> Fs=1/(x(3601)-x(1))*3600 % análisis de 3600 muestras Fs = 360 Dado que la expresión de la Transformada Discreta de Fourier está dada por: Donde N es la longitud de la señal y Fs la frecuencia de muestreo (la recíproca del tiempo de muestreo T).

  27. Transformada de Fourier de una señal En base a lo expuesto, modificando la escala horizontal del gráfico se logra que las abscisas se expresen en Hz. >> i=1:5000;plot(i*Fs/length(y),H(i))

More Related