-
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