Fundamentos de Informática

Parte II – Análisis y Visualización de Datos mediante Matlab
Titulación: Ingeniería Técnica Industrial – Química Industrial Profesor: José Luis Esteban Escuela Superior de Ciencias Experimentales y Tecnología (ESCET) Universidad Rey Juan Carlos Curso académico 2008-2009
4/11/08 Ingeniería Técnica Industrial (Química) 2007-08 - "Fundamentos de Informática" - Tema 5 1

Tema 5 – Tipos de datos, operadores y funciones

5.1. Tipos de datos en Matlab 5.2. Operadores en Matlab 5.3. Funciones en Matlab 5.4. Lectura y escritura de datos de fichero

4/11/08

Ingeniería Técnica Industrial (Química) 2007-2008 - "Fundamentos de Informática" - Tema 5

2

5.1. Tipos de datos en Matlab

●Tipos

elementales de datos ●Tipos de datos agregados

4/11/08

Ingeniería Técnica Industrial (Química) 2007-2008 - "Fundamentos de Informática" - Tema 5

3

int64."Fundamentos de Informática" . de 8.Tipos elementales de datos en Matlab ● Tipos numéricos ➢ ➢ ➢ Entero (int8. int16. uint32. uint64): ➔ con o sin signo. int32. 32 ó 64 bits Flotante de simple precisión (single): 32 bits Flotante de doble precisión (double): 64 bits.Tema 5 ● Carácter (char): 16 bits ➢ 4/11/08 4 . uint8. 16. Resultado de operaciones relacionales o lógicas Utilizado para almacenar un carácter Ingeniería Técnica Industrial (Química) 2007-2008 . uint16. ➔ Este es el único tipo utilizado en operaciones matemáticas ● Lógico (logical): 8 bits ➢ Valor 0 ó 1.

Tema 5 5 .Tipos de datos agregados en Matlab ● Matrices ➢ ➢ ➢ Matrices comunes: agregaciones bidimensionales de tipos básicos Matrices multidimensionales: 3 ó más dimensiones Matrices dispersas (sparse): ➔ los elementos cuyo valor es 0 no ocupan espacio en la memoria ● Números Complejos ➢ Utilizan dos matrices del mismo tamaño."Fundamentos de Informática" . una para la parte real y otra para la parte imaginaria ● ● 4/11/08 Matrices de celdas Estructuras Ingeniería Técnica Industrial (Química) 2007-2008 .

9 4 2] a= 2 4 8 3 1 5 9 4 2 >> a(:. 6 4 2.1) = 2 4 8 3 1 5 9 4 2 a(:. 2)= [5 1 3.2) ans = 4 6 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 .:.Tema 5 . :.:.2. 3 1 5.Matrices multidimensionales ● Matriz de 3x3: ● Adición de una tercera dimensión: >> a = [2 4 8."Fundamentos de Informática" .2) = 5 1 3 6 4 2 7 7 7 >> a(2. 7 7 7] a(:.

Tema 5 . 0 0 1] a= 1 0 0 0 1 0 0 0 1 >> b = sparse(a) b= (1.Matrices dispersas (sparse matrices) ● ● Las matrices que contienen muchos ceros se pueden almacenar más eficientemente usando matrices dispersas. La función sparse permite crear una matriz dispera vacía o convertir otra matriz en una dispersa. 0 1 0. Ejemplos: >> z = sparse(3.3) z= All zero sparse: 3-by-3 >> a=[1 0 0.2) 1 (3.3) 1 7 ● Las matrices dispersas se pueden utilizar en el mismo tipo de cálculos que las matrices comunes 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 ."Fundamentos de Informática" .1) 1 (2.

vinagre y sal ● Las operaciones sobre una cadena de caracteres son las mismas que sobre una matriz común: >> c(1) ans = a >> Ensalada=['Lechuga con ' vinagreta] Ensalada = Lechuga con aceite. Las cadenas constantes se escriben entre comillas simples: >> vinagreta = 'aceite.Tema 5 8 ."Fundamentos de Informática" . vinagre y sal' vinagreta = aceite.Cadenas de caracteres ● ● Una cadena de caraceres es un vector fila de caracteres. vinagre y sal 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 .

0000i ● Una matriz de números complejos se almacena internamente como dos matrices de números reales: >> real(c) ans = 1 3 4 5 >> imag(c) ans = 2 -1 0 -3 9 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 . La unidad imaginaria se representa mediante las variables i o j.0000 5.0000 + 2.Números complejos ● Los números complejos se pueden utilizar en Matlab de la misma forma que los reales. >> c = [1+2i 3-i.Tema 5 .0000 – 3.0000 – 1.0000i 4."Fundamentos de Informática" .0000i 3. 4 5-3i] c= 1.

Operadores en Matlab ● Tipos de operadores ➢ Operadores aritméticos ➢ Operadores relacionales ➢ Operadores lógicos ● Precedencia de los operadores 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 ."Fundamentos de Informática" .Tema 5 10 .2.5.

Operaciones Aritméticos ● Operaciones matriciales elemento a elemento: ➢ ➢ ➢ A + B Suma A – B Sustracción Operandos del mismo tamaño o uno de ellos ha de ser escalar ● ● Operaciones matriciales (álgebra lineal): ➢ ➢ ➢ ➢ ➢ ➢ Operaciones elemento a elemento: ➢ ➢ ➢ ➢ ➢ ➢ A*B Producto matricial A/B A* B^–1 A\B A^–1 * B A ^ B Potencia de matrices A' Traspuesta (conjugada) Operandos de tamaño compatible o uno de ellos escalar A .j) ^ B(i.Tema 5 .j)} A .j) * B(i."Fundamentos de Informática" .j)} A .j)} A .\ B {B(i.^ B {A(i.j)} A ./ B {A(i.' Traspuesta Operandos del mismo tamaño o uno de ellos escalar 11 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 .j) / A(i.j) / B(i.* B {A(i.

Ingeniería Técnica Industrial (Química) 2007-2008 .Operadores Relacionales (1/2) ● Los operadores relacionales realizan una comparación entre los operandos. ➢ ➢ ➢ ➢ ➢ ➢ A<B A>B A <= B A >= B A == B A ~= B menor que mayor que menor o igual que mayor o igual que igual a distinto de ● Para comparar cadenas de caracteres es necesario utilizar la función strcmp. devolviendo un valor lógico (0 ó 1).Tema 5 4/11/08 12 ."Fundamentos de Informática" .

"Fundamentos de Informática" . >> a>b ans = 0 1 >> a>=b ans = 0 1 >> a==b ans = 0 0 >> a~=b ans = 1 1 >> a>4 ans = 0 0 1 0 0 1 0 1 1 1 1 1 13 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 . >> b = [5 1 5 2].Operadores Relacionales (2/2) ● Ejemplos: >> a = [1 3 5 7].Tema 5 .

>> b = [0 1 1].Operadores Lógicos (1/2) ● Los operadores lógicos relacionan valores lógicos entre sí. ➢ ➢ ➢ ➢ ➢ Negación lógica ( ~ ) Y elemento a elemento ( & ) O elemento a elemento ( | ) Y escalar vago ( && ) O escalar vago ( || ) >> a = [1 0 1]. >> a | b ans = 1 1 1 >> a & b ans = 0 0 1 >> ~ans ans = 1 1 0 14 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 . para obtener otro resultado lógico.Tema 5 ."Fundamentos de Informática" .

>> b = 0. 4/11/08 15 . De este modo se evitan cálculos innecesarios e incluso errores. ➢ ➢ Y escalar vago ( && ) O escalar vago ( || ) >> a = 1.Operadores Lógicos (2/2) ● Los operadores lógicos escalares se denominan “vagos” porque no evalúan el operando de la derecha si no es necesario."Fundamentos de Informática" .Tema 5 evaluar el operando de la derecha. ya no es necesario Ingeniería Técnica Industrial (Química) 2007-2008 . >> x = (b ~= 0) && (a/b > 18.5) x= 0 ● Ejemplo: ● Si el resultado de (b ~= 0) es falso.

Precedencia de los Operadores ● ● ● ● Paréntesis ( ) Operadores matriciales ➢ Traspuesta (.\).^).*). sustracción (–) Operadores unarios ➢ Operadores aritméticos ➢ ➢ ● ● ● Operador dos puntos (:) Operadores relacionales ➢ Menor (<). mayor (>). igual (==).'). división (. menos unario (–)."Fundamentos de Informática" . negación lógica (~) Multiplicación (.Tema 5 Operadores lógicos ➢ ➢ ➢ ➢ 4/11/08 16 . traspuesta compleja conjugada ('). distinto (~=) Y elemento a elemento (&) O elemento a elemento (|) Y vago (&&) O vago (||) Ingeniería Técnica Industrial (Química) 2007-2008 . potencia matricial (^) Más unario (+). producto de matrices (*). menor o igual (<=)./ y . división de matrices (/ y \) Adición (+). potencia (. mayor o igual (>=).

devolviendo un resultado.5. Matlab dispone de una gran biblioteca de funciones. Funciones en Matlab ● Las funciones perimten realizar un cálculo sobre uno o varios argumentos.3.Tema 5 ● ● ● 4/11/08 17 . El aspecto de una llamada a una función es: ➢ r = nombre_de_función( arg1. es el conjunto de argumentos proporcionados a la función Ingeniería Técnica Industrial (Química) 2007-2008 .. En aquellos casos en los que se precisa utilizar una función no disponible en la biblioteca de Matlab.."Fundamentos de Informática" . . arg2.. . ) ➢ r es la variable donde se almacenará el resultado ➢ arg1.. el usuario puede programarla para después utilizarla del mismo modo que las funciones de biblioteca. arg2. Tanto los argumentos como los resultados pueden ser matrices.

Tema 5 . variables o expresiones: ➢ cos(1.5:1 x= 0 0.5000 ● ● Ciertas funciones pueden devolver valores simples o múltiples: >> a= [1 5 3]. >> maximo = max(a) maximo = 5 >> [maximo posicion] = max(a) maximo = 5 posicion = 2 18 1.5403 Ingeniería Técnica Industrial (Química) 2007-2008 .8776 4/11/08 0.23) cos(x) cos(2*x+b) Una función escalar aplicada a una matriz opera sobre cada elemento.Estructura de las Funciones ● Los argumentos proporcionados a las funciones pueden ser constantes. devolviendo otra matriz del mismo tamaño.0000 0. >> x=0:0.0000 >> cos(x) ans = 1."Fundamentos de Informática" .

Tema 5 19 ."Fundamentos de Informática" .Categorías de Funciones de Biblioteca ● Funciones de control del entorno de trabajo ● Funciones matemáticas ● Funciones de programación ● Funciones de lectura y escritura de ficheros ● Funciones gráficas 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 .

Tema 5 4/11/08 20 ."Fundamentos de Informática" .Funciones matemáticas ● ● ● Funciones que operan sobre escalares Funciones que operan sobre vectores Funciones que operan sobre matrices ➢ ➢ ➢ ➢ ➢ ➢ ➢ ➢ Funciones matriciales elementales Descomposición y factorización de matrices Análisis estadístico de datos Análisis de polinomios Integración de ecuaciones diferenciales ordinarias Resolución de ecuaciones no lineales y optimización Integración numérica Procesamiento de señal e imagen Ingeniería Técnica Industrial (Química) 2007-2008 .

y) resto x – n.*y./y) No es necesario que x e y sean enteros mod(x."Fundamentos de Informática" . recibe 2 argumentos. donde n = fix(x./y) round(x) redondeo hacia el entero más próximo fix(x) redondea hacia el entero más próximo a 0 floor(x) valor entero más próximo hacia -∞ ceil(x) valor entero más próximo hacia +∞ gcd(x) máximo común divisor lcm(x) mínimo común múltiplo real(x) partes reales imag(x) partes imaginarias abs(x) valores absolutos angle(x) ángulos de fase 21 Ingeniería Técnica Industrial (Química) 2007-2008 .Tema 5 . donde n = floor(x.y) resto x – n. devuelve un vector unitario en la misma dirección rem(x. proporcionales al seno y al coseno sinh(x) seno hiperbólico cosh(x) coseno hiperbólico tanh(x) tangente hiperbólica asinh(x) arco seno hiperbólico acosh(x) arco coseno hiperbólico atanh(x) arco tangente hiperbólica log(x) logaritmo natural log10(x) logaritmo decimal 4/11/08 exp(x) sqrt(x) sign(x) función exponencial raíz cuadrada devuelve -1 si x<0.*y.y) arco tangente (devuelve un ángulo entre -π y +π).Funciones que operan sobre escalares sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) seno coseno tangente arco seno arco coseno arco tangente (devuelve un ángulo entre -π/2 y +π/2) atan2(x. 0 si x=0 y 1 si x>0 Aplicada a un número complejo.

Funciones que operan sobre vectores max(x) Máximo elemento de un vector [xm. Devuelve el valor máximo xm y la posición que ocupa im sum(x) Suma de los elementos de un vector cumsum(x) Devuelve el vector suma acumulativa de los elementos de un vector (cada elemento del resultado es una suma de elementos del original) mean(x) Valor medio de los elementos de un vector std(x) Desviación típica prod(x) Producto de los elementos de un vector cumprod(x) Devuelve el vector producto acumulativo de los elementos de un vector [y. Devuelve el valor máximo xm y la posición que ocupa im min(x) Mínimo elemento de un vector [xm."Fundamentos de Informática" .Tema 5 22 .im]=max(x) Ídem.i]=sort(x) Ordenación de menor a mayor de los elementos de un vector x.im]=min(x) Ídem. Devuelve el vector ordenado y. y un vector i con las posiciones iniciales en x de los elementos en el vector ordenado y. 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 .

Tema 5 . n) rand(n) rand(m. n^2. con distribución normal.. n) randn(n) magic(n) 4/11/08 forma la matriz unidad de orden n forma una matriz de ceros de tamaño (m×n) ídem de tamaño (n×n) forma una matriz de unos de tamaño (m×n) ídem de tamaño (n×n) forma un vector con n valores equiespaciados entre x1 y x2 forma un vector con n valores espaciados logarítmicamente entre 10^d1 y 10^d2.. los puntos se generan entre 10^d1 y pi forma una matriz de números aleatorios entre 0 y 1. . n) zeros(n) ones(m. con la propiedad de que todas las filas y columnas suman lo mismo. de tamaño (n×n) idem de tamaño (m×n) forma una matriz de números aleatorios de tamaño (n×n).Funciones que construyen matrices eye(n) zeros(m."Fundamentos de Informática" . 2. de valor medio 0 y varianza 1. con distribución uniforme. crea una matriz (n×n) con los números 1. n) logspace(d1. Si d2 es pi. d2. 23 Ingeniería Técnica Industrial (Química) 2007-2008 . n) ones(n) linspace(x1. x2.

devolviendo un valor lógico. El resultado es un vector valores lógicos.Funciones de exploración de matrices any(vector) any(matriz) all(vector) all(matriz) find(vector) find(matriz) [l c]=find(matriz) Comprueba si alguno de los elementos del vector es distinto de cero. Busca en la matriz valores distintos de cero y devuelve dos vectores. 24 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 ."Fundamentos de Informática" . Busca en el vector valores distintos de cero y devuelve otro vector con la lísta de índices de los elementos encontrados.Tema 5 . El resultado es un vector valores lógicos. devolviendo un valor lógico. uno con la lista de filas y otro con la lista de columnas de los elementos encontrados. Comprueba si todos de los elementos del vector es distinto de cero. Se aplica por separado a cada columna de la matriz. Busca en la matriz valores distintos de cero y devuelve otro vector con la lísta de índices absolutos de los elementos encontrados. Se aplica por separado a cada columna de la matriz.

Funciones matriciales básicas [m. que se pueden consultar en la bibliografía y en la ayuda del programa.Tema 5 4/11/08 25 .1) size(matriz."Fundamentos de Informática" . Ingeniería Técnica Industrial (Química) 2007-2008 .n] = size(matriz) size(matriz) size(matriz.2) trace(matriz) inv(matriz) det(matriz) Devuelve el número de filas m y de columnas n de una matriz Devuelve el tamaño de una matriz cuadrada Devuelve el número de filas de la matriz Devuelve el número de columnas de la matriz Devuelve la traza (suma de los elementos de la diagonal) de una matriz cuadrada Devuelve la inversa de la matriz (cuadrada) Devuelve el determinante de la matriz (cuadrada) ● Existe un gran número de funciones de álgebra matricial en Matlab.

cad2) devuelve un vector con las posiciones iniciales de todas las veces en que la cadena más corta aparece en la más larga strmatch(matcad. cada vez que c2 es encontrada en c1 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 . cad2) Como strcmp..c3) Sustituye la cadena c2 por c3. isspace(cad) Detecta si un cada carácter es un espacio en blanco. . n) Como strcmp. cad) Devuelve los índices de todos los elementos de la matriz de cadenas que empiezan por la cadena cad strrep(c1. ignorando la diferencia entre mayúsculas y minúsculas strncmp(cad1. comparando sólo los n primeros caracteres de las cadenas findstr(cad1."Fundamentos de Informática" . y cero si no lo son strcmpi(cad1.) deblank(cad) ischar(cad) isletter(cad) Convierte en números (códigos ASCII) cada carácter Convierte un vector de números (códigos ASCII) en una cadena Crea una matriz de caracteres con las cadenas proporcionadas Elimina los blancos al final de una cadena de caracteres Detecta si una variable es una cadena de caracteres Detecta si cada carácter de la cadena es alfabético.Tema 5 26 . cad2) Devuelve un uno si las cadenas son iguales .Funciones sobre cadenas de caracteres double(cad) char(vector) char(cad1.c2. strcmp(cad1.. cad2. cad2. devolviendo un vector de valores lógicos de la misma longitud que la cadena.

También puede ser necesario almacenar las variables en uso para retomar la sesión con posterioridad. Por otro lado. Lectura y escritura de datos de fichero ● ● Por lo general.5. ● ● 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 .4."Fundamentos de Informática" . los resultados que se generen también pueden constituir grandes volúmenes de datos que convendrá almacenar en ficheros.Tema 5 27 . se encontrarán almacenados en ficheros. Matlab ofrece varias funciones para este fin. los datos que hayan de ser analizados.

Almacena la variable en un fichero con el nombre de la variable al que se añade '. ● Almacena las variables especificadas en el fichero indicado. Almacena todas las variables en el fichero 'matlab..Tema 5 save variable ● save nombrefichero ● save ● 4/11/08 28 ."Fundamentos de Informática" .Escritura de datos en fichero (1/3) save nombrefichero variable1 variable2 ..mat' Almacena todas las variables en el fichero indicado.mat' Ingeniería Técnica Industrial (Química) 2007-2008 .

y cada vez que se escribe un fichero se pierde el contenido previo de éste.Tema 5 29 ."Fundamentos de Informática" .Escritura de datos en fichero (2/3) ● Las instrucción save almacena los datos en formato binario. Las siguientes opciones de la instrucción save permiten alterar su funcionamiento básico: ➢ ➢ ➢ ➢ ➢ ● –append –ascii –ascii –double –ascii –tabs –ascii –double –tabs Añade datos al fichero en lugar de borrarlo Guarda los datos en formato de texto editable Ídem con más dígitos significativos Separa los datos con tabulaciones Más dígitos significativos y tabulaciones 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 .

mat ● save variables.mat ● save a.txt a b c –ascii ➢ Almacena la variables a.txt ● save variables. Ejemplos. ➢ Peligro.mat a ➢ Almacena la variable a en el fichero binario variables.txt a –ascii ➢ Almacena la variable a en el fichero de texto a.mat ➢ Almacena todas las variables del workspace en el fichero binario ● save variable. save practica2.Escritura de datos en fichero (3/3).mat a b c ➢ Almacena las variables a. ● 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 .txt.Tema 5 30 ."Fundamentos de Informática" . habrá problemas al intentar cargarlas en memoria. b y c en el fichero de texto variables. b y c en el fichero binario variables.

mat' Ingeniería Técnica Industrial (Química) 2007-2008 .Tema 5 load nombrefichero ● load nombrefichero -ascii ● load ● 4/11/08 31 . Se produce un error si los datos del fichero no tienen forma de matriz.Lectura de datos de fichero (1/2) load nombrefichero variable1 variable2 .."Fundamentos de Informática" . ● Lee del fichero binario únicamente las variables especificadas Lee todas las variables existentes en el fichero binario indicado.. Lee los datos del fichero de texto y los almacena en una variable con el mismo nombre (sin extensión). Lee todas las variables del fichero 'matlab.

● load variables.Tema 5 32 . Ejemplos.txt en la variable a.mat ➢ Carga en el workspace todas las variables del fichero (binario). ● 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 ."Fundamentos de Informática" . ➢ No es posible cargar varias variables a partir de un solo fichero de texto.mat únicamente las variables a.txt –ascii ➢ Carga el contenido del fichero de texto a.Lectura de datos de fichero (2/2). load practica2. b y c. ● load a.mat a b c ➢ Carga del fichero binario variables.

Sign up to vote on this title
UsefulNot useful