Ingeniera Tcnica Industrial (Qumica) 2008-09 - "Fundamentos de Informtica" - Tema 421/10/08 1
Fundamentos de InformticaParte II Anlisis y Visualizacin de Datos
mediante Matlab
Titulacin: Ingeniera Tcnica Industrial Qumica Industrial
Profesor: Jos Luis Esteban
Escuela Superior de Ciencias Experimentales y Tecnologa (ESCET)
Universidad Rey Juan Carlos
Curso acadmico 2008-2009
Ingeniera Tcnica Industrial (Qumica) 2008-09 - "Fundamentos de Informtica" - Tema 421/10/08 2
Tema 4 Introduccin a Matlab
4.1. El entorno de trabajo de Matlab4.2. Expresiones bsicas4.3. Variables4.4. Matrices. Expresiones matriciales
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 3
4.1. El entorno de trabajo de Matlab
Qu es Matlab:Programa para la realizacin de clculos
matemticos.Ofrece gran facilidad para operar sobre
matrices (MATrix LABoratory).Dispone de un lenguaje de programacin
interpretado.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 4
Aspecto del entorno de trabajo de Matlab
Command WindowCommand Window: : Instrucciones y sus Instrucciones y sus
resultadosresultados
WorkspaceWorkspace: : Variables en Variables en
usouso
Command Command HistoryHistory: : ltimas ltimas
instrucciones instrucciones ejecutadasejecutadas
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 5
Principales ventanas de Matlab
Command Window: Instrucciones y sus resultados Current directory: Explorador de directorios Workspace: Visor de variables utilizadas Command history: Lista de instrucciones recientes Figure: Grficos Editor de ficheros de texto
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 6
4.2. Expresiones bsicas
Se puede utilizar Matlab para realizar clculos numricos:
>> 2+2ans = 4
>> 5*8ans = 40
>> 2+2-1+5ans = 8
>> 1+5*2ans = 11
>> (1+5)*2ans = 12
>> 20/2+2ans = 12
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 7
Representacin de escalares
Notacin entera Secuencia de dgitos precedidos o no por un signo Ejemplos: 10 1 2005 1000000000
Notacin decimal Secuencia de dgitos que incluye un punto decimal, precedidos
o no por un signo Ejemplos: 3.14159 32.8 0.00000001 .003 .4
Notacin cientfica Nmero en notacin decimal o entera (mantisa) seguido de la
letra e, seguido de otro nmero en notacin entera (exponente). Ejemplos: 6.023e23 2e10 5e10 2.5435443e6
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 8
Operadores aritmticos sobre escalares (1 de 3)
Operadores que pueden utilizarse sobre magnitudes escalares: Suma: + 2 + 2 Resta: 2 2 Producto: * 2 * 2 Divisin: / 2 / 2 Potencia: ^ 2 ^ 2
Precedencia de los operadores: Potencia (^) Mayor precedencia Producto (*) y divisin (/) Suma (+) y resta () Menor precedencia
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 9
Operadores aritmticos sobre escalares (2 de 3)
Orden de evaluacin de los operadores aritmticos: Primero los de ms precedencia En caso de igual precedencia, de izquierda a derecha
Ejemplo: 5 + 2 ^ 3 4 * 8 / 2 1 Potencia 2^3 5 + 8 4 * 8 / 2 2 Producto 4*8 5 + 8 32 / 2 3 Divisin 32 / 2 5 + 8 16 4 Suma 5 + 8 13 16 5 Diferencia 13 16 3 6 Resultado
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 10
Operadores aritmticos sobre escalares (3 de 3)
Uso de parntesis para modificar el orden de evaluacin: Se evala primero la expresin del parntesis ms interno
Ejemplo: ((5 + 2 ^ 3) 4) * (8 / 2) 1 Potencia 2^3 ((5 + 8) 4) * (8 / 2) 2 Suma 5 + 8 (13 4) * (8 / 2) 3 Diferencia 13 4 9 * (8 / 2) 4 Divisin 8 / 2 9 * 4 5 Producto 9 * 4 36 6 Resultado
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 11
Espacio blanco en expresiones
El espacio blanco puede estar constituido por caracteres en blanco o tabulaciones.
Es necesario para separar identificadores y palabras reservadas si no existe ningn otro separador.
El espacio extra es ignorado.
>> 2+2ans = 4
>> 2 + 2ans = 4
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 12
4.3. Variables
Es posible asignar valores a variables>> a=2a = 2
>> b=3b = 3
Las variables se pueden utilizar en expresiones
>> a*bans = 6
La variable ans contiene el ltimo resultado calculado
>> ans*2ans = 12
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 13
Concepto de variable
Los datos se almacenan en variables. A una variable se asocian los siguientes elementos: Identificador el nombre utilizado para referirse a ella Direccin posicin de la memoria principal donde se almacena Tipo forma de interpretar el contenido Tamao nmero de bits de memoria utilizados Valor el contenido de la memoria
La atribucin de un valor a una variable se denomina asignacin.
Declaracin de variables en Matlab: No es necesario declararlas antes de asignarles un valor Es necesario asignarles un valor antes de usarlas en una expresin.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 14
Reglas para el nombre de variable
Reglas para construir identificadores o nombres de variables: Letras a-z, A-Z (ASCII), nmeros y _ Mximo nmero de caracteres: namelengthmax El primer carcter ha de ser alfabtico Se distingue entre maysculas y minsculas No se pueden usar las palabras reservadas
Las palabras reservadas son identificadores utilizados por el lenguaje.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 15
Reglas para el nombre de variable. Ejemplos.
Ejemplos de identificadores correctos: Numero_de_alumnos promedio z R2T2
Ejemplos de identificadores errneos: 1980ALU LOS ANGELES numero.de.alumnos A/B
Cules de los siguientes son identificadores vlidos en Matlab?Radio, X34, Velocidad, aceLeraCin, 3ac, coordenada_X, X-Y, a b c, man.utd
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 16
Asignacin de valores a variables
Forma general de una asignacin: Variable = Valor
Asignacin de una constante X = 7 Asigna a la variable X el valor 7.
Asignacin de una variable Y = X Asigna a la variable Y el valor de la variable X.
La variable X no sufre alteracin Asignacin de una expresin Z = X^2 + 3*Y + 1 Asigna a la variable Z el valor resultante de evaluar
la expresin. Las variables X e Y, presentes en la expresin, no se modifican.
U = U^2 5*K Las variables U y K forman parte de la expresin. Tras evaluar sta, U se modifica al recibir el valor calculado. La variable K no se modifica.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 17
Expresiones con variables
Si asignamos valores a variables:>> a=3a = 3>> b=2b = 2
>> 5*a^2 + 2*b + 3ans = 52
Podemos usarlas en expresiones arbitrariamente complejas:
Si intentamos utilizar una variable no declarada, se produce un error: >> 5*s+2
??? Undefined function or variable 's'.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 18
Ocultacin de resultados con punto y coma
Cuando el resultado de una operacin es obvio, dicho resultado puede ocultarse utilizando punto y coma (;). Ejemplo:>> a=3a = 3>> b=2b = 2>> 5*a^2 + 2*b + 3ans = 52
>> a=3;>> b=2;>> 5*a^2 + 2*b + 3ans = 52
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 19
Variables predefinidas
Matlab dispone de una serie de variables predefinidas: ans Si el ltimo valor calculado no se asigna a una variable,
entonces se asigna automticamente a ans eps Precisin de los clculos en coma flotante. Tolerancia
utilizada en los clculos. realmax Mayor nmero en coma flotante que puede ser
representado en tu ordenador. realmin Menor nmero positivo en coma flotante que puede ser
representado en tu ordenador. pi 3.1415926535897... i, j Unidad imaginaria. inf Infinito. Resultado de clculos como 7/0.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 20
4.4. Matrices. Expresiones matriciales
En Matlab, todas las variables son matrices. Una matriz es una coleccin de valores ordenados en
una disposicin rectangular de m filas y n columnas (matriz de tamao m x n).
Se dice que una matriz es cuadrada cuando m = n Un vector fila de tamao n es una matriz de 1 x n Un vector columna de tamao m es una matriz de m x 1 Un escalar (en Matlab) es una matriz de 1 x 1.
Todas las variables escalares vistas en anteriores ejemplos son matrices de 1 x 1.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 21
Creacin de Matrices (1/4)
Para crear una matriz se intriduce una lista de valores de la siguiente manera: Los elementos de cada fila se separa mediante blancos o comas Las filas se separan mediante punto y coma, ; Toda la lista de elementos se rodea mediante corchetes, [ ]
Ejemplo, matriz de 3 x 3:>> x = [2 8 4; 3 6 1; 4 4 9]x = 2 8 4 3 6 1 4 4 9
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 22
Creacin de Matrices (2/4)
Ejemplo, vector fila de 3 elementos:>> f = [2 6 1]f = 2 6 1
>> e = [7]e = 7
>> c = [4; 1; 9]c = 4 1 9
Ejemplo, matriz de 1 x 1, que equivale a un escalar:
Ejemplo, vector columna de 3 elementos:
>> e = 7e = 7
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 23
Creacin de Matrices (3/4)
Cuando la matriz contiene nicamente valores lgicos (unos y ceros) se dice que es una matriz lgica
La funcin logical se encarga de asegurar que los valores de la matriz sean nicamente valores lgicos.
Ejemplo:>> a = logical( [1 0 1; 0 1 1; 1 0 0] )a = 1 0 1 0 1 1 1 0 0
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 24
Creacin de Matrices (4/4). Operador : (dos puntos)
Cuando es necesario definir una secuencia de nmeros segn una ley simple, se puede utilizar el operador :. Este operador genera un vector fila.
Usando dos elementos (inicio y lmite del intervalo): 1:5 equivale a [1 2 3 4 5] 1.5:4 equivale a [1.5 2.5 3.5]
Usando tres elementos (inicio, incremento, lmite): 1:3:10 equivale a [1 4 7 10] 1:1:5 equivale a [1 2 3 4 5] 5:1:1 equivale a [5 4 3 2 1] 0:pi/4:pi equivale a [0 0.7854 1.5708 2.3562 3.1416]
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 25
Operaciones con Matrices
Operaciones matriciales(lgebra lineal): A * B Producto matricial A / B A * B^1 A \ B A^1 * B A ^ B Potencia de matrices A ' Traspuesta (conjugada) Operandos de tamao compatible
o uno de ellos escalar
Operaciones elemento a elemento: A .* B {A(i,j) * B(i,j)} A ./ B {A(i,j) / B(i,j)} A .\ B {B(i,j) / A(i,j)} A .^ B {A(i,j) ^ B(i,j)} A .' Traspuesta Operandos del mismo tamao
o uno de ellos escalar
Operaciones matriciales elemento a elemento: A + B Suma A B Sustraccin Operandos del mismo tamao o uno de ellos ha de ser escalar
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 26
Ejemplos (1/4)
Creacin de dos matrices>> a = [1 2 3; 4 5 6; 7 8 9]a = 1 2 3 4 5 6 7 8 9>> b = [3 2 5; 5 1 3; 8 4 1]b = 3 2 5 5 1 3 8 4 1
>> k = 7;>> a+kans = 8 9 10 11 12 13 14 15 16>> a*kans = 7 14 21 28 35 42 49 56 63
Operaciones con escalares
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 27
Ejemplos (2/4)
>> a+bans = 4 4 8 9 6 9 15 12 10>> a-bans = -2 0 -2 -1 4 3 -1 4 8
Suma y resta Producto matricial y elemento a elemento
>> a*bans = 37 16 14 85 37 41 133 58 68>> a.*bans = 3 4 15 20 5 18 56 32 9
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 28
Ejemplos (3/4)
>> a/bans = 0.9692 -0.6769 0.1846 1.8923 -1.3692 0.6462 2.8154 -2.0615 1.1077>> a./bans = 0.3333 1.0000 0.6000 0.8000 5.0000 2.0000 0.8750 2.0000 9.0000
Divisin matricial y elemento a elemento
>> b^-1ans = -0.1692 0.2769 0.0154 0.2923 -0.5692 0.2462 0.1846 0.0615 -0.1077>> b^2ans = 59 28 26 44 23 31 52 24 53
Potencias
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 29
Ejemplos (4/4)
Dos vectores
>> x = [1 2 3]x = 1 2 3
>> y = [4; 5; 6]y = 4 5 6
Producto matricial
>> x * yans = 32>> y * xans = 4 8 12 5 10 15 6 12 18
Producto elemento a elemento
>> x .* y??? Error using ==> .*Matrix dimensions must agree.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 30
Seleccin de elementos de matrices. Subndices
Es posible seleccionar un elemento individual de una matriz: A(i, j) es el elemento que se encuentra en la fila i y columna j de A.
Los elementos de una matriz se pueden utilizar en expresiones: W = A(2,3) * x / 2 Si se hace referencia a un elemento fuera de la matriz, se produce
un error. Se puede asignar un valor a un elemento de una matriz: A(2,3) = 2 * pi * r Si se asigna un valor a un elemento fuera de la matriz, sta crece
lo necesario para dar cabida al elemento. El resto de los elementos creados se rellena a 0.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 31
Seleccin de mltiples elementos (1/3)
Recordemos que en Matlab todo son matrices, y los subndices no tienen por qu ser una excepcin. As, el lugar de cualquer subndice lo puede ocupar un vector fila.
Ejemplos con un vector fila A, que vale [3 7 2 1 7 8 3 5 6] A(1, [3 7 5]) vale [2 3 7] A(1, 3:7) vale [2 1 7 8 3] A(1, 1:2:9) vale [3 2 7 3 6] A(1, 1:2:9) = 0 produce [0 7 0 1 0 8 0 5 0] A(1, 12) = 3 produce [3 7 2 1 7 8 3 5 6 0 0 3]
El uso de : como subndice permite seleccionar todos los elementos en la correspondiente dimensin.
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 32
Seleccin de mltiples elementos (2/3)
Ejemplos con una matriz de 3 x 3:>> a = [1 2 3; 4 5 6; 7 8 9]a = 1 2 3 4 5 6 7 8 9>> a([1 3], [1 2])ans = 1 2 7 8>> a(2, :)ans = 4 5 6
>> a([1 3], [1 2]) = 0a = 0 0 3 4 5 6 0 0 9
>> a(3, 4) = 2a = 1 2 3 0 4 5 6 0 7 8 9 2
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 33
Seleccin de mltiples elementos (3/3)
En lugar de utilizar varios subndices es posible utilizar una matriz lgica del mismo tamao que la matriz en cuestin.
>> a = [1 2 3; 4 5 6; 7 8 9]a = 1 2 3 4 5 6 7 8 9>> s = logical( [1 0 1; 0 1 1; 1 0 0] )s = 1 0 1 0 1 1 1 0 0
>> a(s)ans = 1 7 5 3 6
El resultado de la seleccin es un vector columna que contiene los elementos correspondientes a los unos en la matriz lgica:
21/10/08 Ingeniera Tcnica Industrial (Qumica) 2008-2009 - "Fundamentos de Informtica" - Tema 4 34
Concatenacin de elementos en una matriz
Concatenacin de una fila:
>> a = [1 2; 3 4]a = 1 2 3 4
>> b = [a ; 7 8]b = 1 2 3 4 7 8
>> c = [a [1;1]]c = 1 2 1 3 4 1
>> a(:,3) = [1; 1]a = 1 2 1 3 4 1
Concatenacin de una columna:
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34
Recommended