Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Tipos
4/11/08
Tipos numricos
Flotante de simple precisin (single): 32 bits Flotante de doble precisin (double): 64 bits.
4/11/08
Matrices
Matrices comunes: agregaciones bidimensionales de tipos bsicos Matrices multidimensionales: 3 ms dimensiones Matrices dispersas (sparse):
Nmeros Complejos
Utilizan dos matrices del mismo tamao, una para la parte real y otra para la parte imaginaria
4/11/08
Matrices multidimensionales
Matriz de 3x3:
>> a = [2 4 8; 3 1 5; 9 4 2] a= 2 4 8 3 1 5 9 4 2
4/11/08
Las matrices que contienen muchos ceros se pueden almacenar ms eficientemente usando matrices dispersas. La funcin sparse permite crear una matriz dispera vaca o convertir otra matriz en una dispersa. Ejemplos:
>> z = sparse(3,3) z= All zero sparse: 3-by-3 >> a=[1 0 0; 0 1 0; 0 0 1] a= 1 0 0 0 1 0 0 0 1 >> b = sparse(a) b= (1,1) 1 (2,2) 1 (3,3) 1
7
Las matrices dispersas se pueden utilizar en el mismo tipo de clculos que las matrices comunes
4/11/08
Cadenas de caracteres
Una cadena de caraceres es un vector fila de caracteres. Las cadenas constantes se escriben entre comillas simples:
>> vinagreta = 'aceite, vinagre y sal' vinagreta = aceite, vinagre y sal
Las operaciones sobre una cadena de caracteres son las mismas que sobre una matriz comn:
>> c(1) ans = a >> Ensalada=['Lechuga con ' vinagreta] Ensalada = Lechuga con aceite, vinagre y sal
4/11/08
Nmeros complejos
Los nmeros complejos se pueden utilizar en Matlab de la misma forma que los reales. La unidad imaginaria se representa mediante las variables i o j.
>> c = [1+2i 3-i; 4 5-3i] c= 1.0000 + 2.0000i 3.0000 1.0000i 4.0000 5.0000 3.0000i
Una matriz de nmeros complejos se almacena internamente como dos matrices de nmeros reales:
>> real(c) ans = 1 3 4 5 >> imag(c) ans = 2 -1 0 -3
9
4/11/08
Tipos
de operadores
Operadores
de los operadores
4/11/08
10
Operaciones Aritmticos
A + B Suma A B Sustraccin Operandos del mismo tamao o uno de ellos ha de ser escalar
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
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
11
4/11/08
Los operadores relacionales realizan una comparacin entre los operandos, devolviendo un valor lgico (0 1).
menor que mayor que menor o igual que mayor o igual que igual a distinto de
4/11/08
12
Ejemplos:
>> a = [1 3 5 7]; >> b = [5 1 5 2]; >> 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
13
4/11/08
Los operadores lgicos relacionan valores lgicos entre s, para obtener otro resultado lgico.
Negacin lgica ( ~ ) Y elemento a elemento ( & ) O elemento a elemento ( | ) Y escalar vago ( && ) O escalar vago ( || )
>> a = [1 0 1]; >> b = [0 1 1]; >> a | b ans = 1 1 1 >> a & b ans = 0 0 1 >> ~ans ans = 1 1 0
14
4/11/08
Los operadores lgicos escalares se denominan vagos porque no evalan el operando de la derecha si no es necesario.
Ejemplo:
evaluar el operando de la derecha. De este modo se evitan clculos innecesarios e incluso errores.
4/11/08 15
Traspuesta (.'), potencia (.^), traspuesta compleja conjugada ('), potencia matricial (^) Ms unario (+), menos unario (), negacin lgica (~) Multiplicacin (.*), divisin (./ y .\), producto de matrices (*), divisin de matrices (/ y \) Adicin (+), sustraccin ()
Operadores unarios
Operadores aritmticos
Menor (<), menor o igual (<=), mayor (>), mayor o igual (>=), igual (==), distinto (~=) Y elemento a elemento (&) O elemento a elemento (|) Y vago (&&) O vago (||)
Ingeniera Tcnica Industrial (Qumica) 2007-2008 - "Fundamentos de Informtica" - Tema 5
Operadores lgicos
4/11/08
16
Las funciones perimten realizar un clculo sobre uno o varios argumentos, devolviendo un resultado. Tanto los argumentos como los resultados pueden ser matrices. Matlab dispone de una gran biblioteca de funciones. En aquellos casos en los que se precisa utilizar una funcin no disponible en la biblioteca de Matlab, el usuario puede programarla para despus utilizarla del mismo modo que las funciones de biblioteca. El aspecto de una llamada a una funcin es: r = nombre_de_funcin( arg1, arg2, ... ) r es la variable donde se almacenar el resultado arg1, arg2, ... es el conjunto de argumentos proporcionados a la funcin
Ingeniera Tcnica Industrial (Qumica) 2007-2008 - "Fundamentos de Informtica" - Tema 5
4/11/08
17
Los argumentos proporcionados a las funciones pueden ser constantes, variables o expresiones: cos(1.23) cos(x) cos(2*x+b) Una funcin escalar aplicada a una matriz opera sobre cada elemento, devolviendo otra matriz del mismo tamao.
>> x=0:0.5:1 x= 0 0.5000
1.0000
0.5403
de control del entorno de trabajo Funciones matemticas Funciones de programacin Funciones de lectura y escritura de ficheros Funciones grficas
4/11/08
19
Funciones matemticas
Funciones que operan sobre escalares Funciones que operan sobre vectores Funciones que operan sobre matrices
Funciones matriciales elementales Descomposicin y factorizacin de matrices Anlisis estadstico de datos Anlisis de polinomios Integracin de ecuaciones diferenciales ordinarias Resolucin de ecuaciones no lineales y optimizacin Integracin numrica Procesamiento de seal e imagen
Ingeniera Tcnica Industrial (Qumica) 2007-2008 - "Fundamentos de Informtica" - Tema 5
4/11/08
20
funcin exponencial raz cuadrada devuelve -1 si x<0, 0 si x=0 y 1 si x>0 Aplicada a un nmero complejo, devuelve un vector unitario en la misma direccin rem(x,y) resto x n.*y, donde n = fix(x./y) No es necesario que x e y sean enteros mod(x,y) resto x n.*y, donde n = floor(x./y) round(x) redondeo hacia el entero ms prximo fix(x) redondea hacia el entero ms prximo a 0 floor(x) valor entero ms prximo hacia - ceil(x) valor entero ms prximo hacia + gcd(x) mximo comn divisor lcm(x) mnimo comn mltiplo real(x) partes reales imag(x) partes imaginarias abs(x) valores absolutos angle(x) ngulos de fase
21
22
forma la matriz unidad de orden n forma una matriz de ceros de tamao (mn) dem de tamao (nn) forma una matriz de unos de tamao (mn) dem de tamao (nn) forma un vector con n valores equiespaciados entre x1 y x2 forma un vector con n valores espaciados logartmicamente entre 10^d1 y 10^d2. Si d2 es pi, los puntos se generan entre 10^d1 y pi forma una matriz de nmeros aleatorios entre 0 y 1, con distribucin uniforme, de tamao (nn) idem de tamao (mn) forma una matriz de nmeros aleatorios de tamao (nn), con distribucin normal, de valor medio 0 y varianza 1. crea una matriz (nn) con los nmeros 1, 2, ... n^2, con la propiedad de que todas las filas y columnas suman lo mismo.
23
4/11/08
Existe un gran nmero de funciones de lgebra matricial en Matlab, que se pueden consultar en la bibliografa y en la ayuda del programa.
Ingeniera Tcnica Industrial (Qumica) 2007-2008 - "Fundamentos de Informtica" - Tema 5
4/11/08
25
26
Por lo general, los datos que hayan de ser analizados, se encontrarn almacenados en ficheros. Por otro lado, los resultados que se generen tambin pueden constituir grandes volmenes de datos que convendr almacenar en ficheros. Tambin puede ser necesario almacenar las variables en uso para retomar la sesin con posterioridad. Matlab ofrece varias funciones para este fin.
4/11/08
27
Almacena las variables especificadas en el fichero indicado. Almacena la variable en un fichero con el nombre de la variable al que se aade '.mat' Almacena todas las variables en el fichero indicado. Almacena todas las variables en el fichero 'matlab.mat'
Ingeniera Tcnica Industrial (Qumica) 2007-2008 - "Fundamentos de Informtica" - Tema 5
save variable
save nombrefichero
save
4/11/08 28
Las instruccin 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 instruccin save permiten alterar su funcionamiento bsico:
Aade datos al fichero en lugar de borrarlo Guarda los datos en formato de texto editable dem con ms dgitos significativos Separa los datos con tabulaciones Ms dgitos significativos y tabulaciones
4/11/08
29
4/11/08
Ingeniera Tcnica Industrial (Qumica) 2007-2008 - "Fundamentos de Informtica" - Tema 5
30
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 extensin). Se produce un error si los datos del fichero no tienen forma de matriz. Lee todas las variables del fichero 'matlab.mat'
Ingeniera Tcnica Industrial (Qumica) 2007-2008 - "Fundamentos de Informtica" - Tema 5
load nombrefichero
load
4/11/08
31
4/11/08
Ingeniera Tcnica Industrial (Qumica) 2007-2008 - "Fundamentos de Informtica" - Tema 5
32