P. 1
Matlab--Tipos de Datos, Operadores y Funciones

Matlab--Tipos de Datos, Operadores y Funciones

|Views: 24|Likes:
Publicado porp3lusa7

More info:

Published by: p3lusa7 on Sep 03, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/06/2014

pdf

text

original

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

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

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

La función sparse permite crear una matriz dispera vacía o convertir otra matriz en una dispersa.Tema 5 . Ejemplos: >> z = sparse(3.2) 1 (3.Matrices dispersas (sparse matrices) ● ● Las matrices que contienen muchos ceros se pueden almacenar más eficientemente usando matrices dispersas. 0 1 0.1) 1 (2.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 . 0 0 1] a= 1 0 0 0 1 0 0 0 1 >> b = sparse(a) b= (1."Fundamentos de Informática" .3) z= All zero sparse: 3-by-3 >> a=[1 0 0.

"Fundamentos de Informática" . vinagre y sal 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 . 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.Tema 5 8 . vinagre y sal' vinagreta = aceite.Cadenas de caracteres ● ● Una cadena de caraceres es un vector fila de caracteres. Las cadenas constantes se escriben entre comillas simples: >> vinagreta = 'aceite.

Números complejos ● Los números complejos se pueden utilizar en Matlab de la misma forma que los reales.Tema 5 .0000 – 3. La unidad imaginaria se representa mediante las variables i o j. 4 5-3i] c= 1.0000i 4.0000 + 2. >> c = [1+2i 3-i.0000i 3."Fundamentos de Informática" .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 .0000 5.0000 – 1.

"Fundamentos de Informática" .5.Tema 5 10 . 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 .2.

^ B {A(i.j)} A .j) / B(i.j)} A .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 .* B {A(i.j) * B(i.Tema 5 .j)} A ./ B {A(i.\ B {B(i."Fundamentos de Informática" .j)} A .j) ^ B(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.

Tema 5 4/11/08 12 . ➢ ➢ ➢ ➢ ➢ ➢ 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.Operadores Relacionales (1/2) ● Los operadores relacionales realizan una comparación entre los operandos. devolviendo un valor lógico (0 ó 1)."Fundamentos de Informática" . Ingeniería Técnica Industrial (Química) 2007-2008 .

Operadores Relacionales (2/2) ● Ejemplos: >> a = [1 3 5 7]. >> 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 .Tema 5 . >> b = [5 1 5 2]."Fundamentos de Informática" .

>> 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 . ➢ ➢ ➢ ➢ ➢ Negación lógica ( ~ ) Y elemento a elemento ( & ) O elemento a elemento ( | ) Y escalar vago ( && ) O escalar vago ( || ) >> a = [1 0 1]. >> b = [0 1 1].Operadores Lógicos (1/2) ● Los operadores lógicos relacionan valores lógicos entre sí."Fundamentos de Informática" .Tema 5 . para obtener otro resultado lógico.

"Fundamentos de Informática" . ya no es necesario Ingeniería Técnica Industrial (Química) 2007-2008 . 4/11/08 15 .Tema 5 evaluar el operando de la derecha. >> b = 0.5) x= 0 ● Ejemplo: ● Si el resultado de (b ~= 0) es falso. >> x = (b ~= 0) && (a/b > 18. 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" .^). traspuesta compleja conjugada (').Tema 5 Operadores lógicos ➢ ➢ ➢ ➢ 4/11/08 16 . igual (==).Precedencia de los Operadores ● ● ● ● Paréntesis ( ) Operadores matriciales ➢ Traspuesta (. sustracción (–) Operadores unarios ➢ Operadores aritméticos ➢ ➢ ● ● ● Operador dos puntos (:) Operadores relacionales ➢ Menor (<). menos unario (–). división de matrices (/ y \) Adición (+). mayor (>). distinto (~=) Y elemento a elemento (&) O elemento a elemento (|) Y vago (&&) O vago (||) Ingeniería Técnica Industrial (Química) 2007-2008 . mayor o igual (>=). división (.*). producto de matrices (*)./ y . potencia (.\). menor o igual (<=). potencia matricial (^) Más unario (+). negación lógica (~) Multiplicación (.

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

5:1 x= 0 0.5000 ● ● Ciertas funciones pueden devolver valores simples o múltiples: >> a= [1 5 3]. variables o expresiones: ➢ cos(1.Estructura de las Funciones ● Los argumentos proporcionados a las funciones pueden ser constantes. devolviendo otra matriz del mismo tamaño.Tema 5 ."Fundamentos de Informática" .0000 0. >> 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 .0000 >> cos(x) ans = 1. >> x=0:0.23) cos(x) cos(2*x+b) Una función escalar aplicada a una matriz opera sobre cada elemento.8776 4/11/08 0.

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 .

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 ."Fundamentos de Informática" .Tema 5 4/11/08 20 .

*y.Tema 5 . 0 si x=0 y 1 si x>0 Aplicada a un número complejo.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. donde n = floor(x./y) No es necesario que x e y sean enteros mod(x.y) resto x – n.*y.y) resto x – n. donde n = fix(x.y) arco tangente (devuelve un ángulo entre -π y +π). 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) 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 . devuelve un vector unitario en la misma dirección rem(x."Fundamentos de Informática" . recibe 2 argumentos.

im]=max(x) Ídem. 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.im]=min(x) Ídem. Devuelve el vector ordenado y.Tema 5 22 . y un vector i con las posiciones iniciales en x de los elementos en el vector ordenado y.Funciones que operan sobre vectores max(x) Máximo elemento de un vector [xm. 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 ."Fundamentos de Informática" .i]=sort(x) Ordenación de menor a mayor de los elementos de un vector x.

Funciones que construyen matrices eye(n) zeros(m. Si d2 es pi.Tema 5 . con distribución uniforme."Fundamentos de Informática" . 2. crea una matriz (n×n) con los números 1.. . con distribución normal.. de tamaño (n×n) idem de tamaño (m×n) forma una matriz de números aleatorios de tamaño (n×n). d2. 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. 23 Ingeniería Técnica Industrial (Química) 2007-2008 . n) rand(n) rand(m. con la propiedad de que todas las filas y columnas suman lo mismo. n) zeros(n) ones(m. n) ones(n) linspace(x1. n) logspace(d1. de valor medio 0 y varianza 1. n^2. x2. los puntos se generan entre 10^d1 y pi forma una matriz de números aleatorios entre 0 y 1.

24 4/11/08 Ingeniería Técnica Industrial (Química) 2007-2008 . Busca en el vector valores distintos de cero y devuelve otro vector con la lísta de índices de los elementos encontrados. El resultado es un vector valores lógicos. uno con la lista de filas y otro con la lista de columnas de los elementos encontrados. El resultado es un vector valores lógicos. Comprueba si todos de los elementos del vector es distinto de cero.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 otro vector con la lísta de índices absolutos de los elementos encontrados. devolviendo un valor lógico."Fundamentos de Informática" . Se aplica por separado a cada columna de la matriz. devolviendo un valor lógico. Busca en la matriz valores distintos de cero y devuelve dos vectores. Se aplica por separado a cada columna de la matriz.Tema 5 .

que se pueden consultar en la bibliografía y en la ayuda del programa.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.Tema 5 4/11/08 25 . Ingeniería Técnica Industrial (Química) 2007-2008 .Funciones matriciales básicas [m.n] = size(matriz) size(matriz) size(matriz.1) size(matriz."Fundamentos de Informática" .

n) Como strcmp.c2.Funciones sobre cadenas de caracteres double(cad) char(vector) char(cad1. 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 . cad) Devuelve los índices de todos los elementos de la matriz de cadenas que empiezan por la cadena cad strrep(c1. comparando sólo los n primeros caracteres de las cadenas findstr(cad1. ignorando la diferencia entre mayúsculas y minúsculas strncmp(cad1. cad2) Como strcmp... strcmp(cad1. devolviendo un vector de valores lógicos de la misma longitud que la cadena. cad2) Devuelve un uno si las cadenas son iguales .Tema 5 26 . 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."Fundamentos de Informática" . cad2. isspace(cad) Detecta si un cada carácter es un espacio en blanco.c3) Sustituye la cadena c2 por c3. cad2.

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

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

"Fundamentos de Informática" .Tema 5 29 .Escritura de datos en fichero (2/3) ● Las instrucción save almacena los datos en formato binario. y cada vez que se escribe un fichero se pierde el contenido previo de éste. 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 .

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

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

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->