Está en la página 1de 38

Computacin Aplicada

Herramienta: MATLAB

Sumario:

Otras funciones:

Relacionales y logicas

Manipulacin de vectores y matrices


Operaciones relacionales.
Las operaciones relacionales se le aplican a matrices de iguales dimensiones y son <, <=, >, >=, ==, ~=.

La comparacin se realiza entre los pares de elementos correspondientes y el resultado es una matriz de ceros y unos, en que estos representan los valores lgicos "true" y " false".

Ejemplos operaciones relacionales


>> a=[-21 10 42]; >> b=[ 40 30 1]; >> a>b ans = 0 0 1

>> a~=b ans =


1 1 1 >> a==b

% a difiere de b

% a=b 0

ans =
0 0

La funcin rem(x,y) devuelve el resto de la divisin entera x/y


La funcin "find" es muy til para los operadores relacionales, ya que devuelve un vector con los ndices de los elementos que cumplen una condicin.

Ejemplos operaciones relacionales


>> p=(rem(b,3)==0) p= 0 1 0

>> y=[1
i= 2 4

8];

>> i=find(y>3.0) 7

Operadores lgicos.
Hay en Matlab tres operadores lgicos: & | y ~. Estos operadores consideran cualquier valor no cero como 1 (verdadero) y el cero como falso. Las funciones any y all se utilizan en conjunto con los operadores lgicos para detectar en el primer caso, si hay algn elemento no cero y en el segundo si todos son no ceros. si el argumento de any o all es una matriz, el resultado es un vector con el resultado de cada columna.

Ejemplos de operadores lgicos con any, all


>> a=[-2 0 2];
>>any(a>0) ans= 1 % elementos de a son mayor que cero

>> any(a<0)
ans = 1 >> all(a) ans= 0

% elementos de a son menor que cero

% todos los elementos son cero, no=0, si=1

Ejemplos de operadores lgicos con any, all y argumento tipo Matriz


>> A=reshape([1:9],3,3)

>> all(A) % como el argumento es una matriz, el resultado es un vector con el resultado de cada columna.
ans = 1 1 1 >> any(A<0)

ans =
0 0 0

Funciones relacionales y lgicas:


any - existe algn no cero
all - todos son no ceros

find - ndices de los no ceros

exist - chequea si la variable existe


isnan - devuelve 1 en los elementos NaNs isinf - devuelve 1 en los elementos infinitos

isempty - devuelve 1 si el argumento es una matriz vaca.


isreal.- Devuelve un 1 si todos los elementos del argumento son reales.

Generacin de vectores.
Esto facilita la formacin de tablas >> x= (0.0:0.2:3.0) x=
0 0.2000 0.4000 0.6000

0.8000
1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000 2.8000 3.0000

Generacin de vectores.
>>z=6:-1:1 z= 6 5 4 3 2 1

>> y= exp(-x).*sin(x); >>[x y]


ans= 0.0000 0.2000 0.0000 0.1627

.
. 3.0000

.
. 0.0070

Otras funciones generadoras son:


>> first=1; >> last=10; >> points=10; >> linspace(first,last,points) ans = 1 2 3 4 5 6 7 8 9 10

>> first=1; >> last=10; >> points=5; >> linspace(first,last,points) ans = 1.0000 3.2500 5.5000 7.7500 10.0000

Generacin de Matrices columnas


Si A es una matriz, A(:) simboliza un vector compuesto por las columnas de A.

>> A=[1 2 3; 4 5 6; 7 8 9];


>> A(:)
ans = 1 4 7 2 5 8 3 6 9

Bsqueda de elementos de un vector


>> x=[4 >> x(1) ans = 4 3 8 -1 6];

>> find(x>=4)

ans =
1 3 5

Matrices vacas.
>> x= [] %Almacena en x una matriz vaca

Borra las columnas 2 y 3 de la matriz A >> A=[1 2 3; 4 5 6; 7 8 9];

>> A(:,[2 3])=[]


A= 1 4 7

Funciones del Matlab


El Matlab tiene un conjunto de funciones orientadas al anlisis de las columnas de una matriz. Estas funciones actan en funcin de si su dato es una matriz o un vector. >> A=[1 2 3; 5 4 2]; A= 1 5 2 4 3 2

>> b=[5 0 -2]; >> b

b=
5 0 -2

>> % max - da el valor mximo del vector o un vector con los valores mximos de la matriz en cada columna.

Funciones del Matlab


>> b=[5 0 -2]; >>max(b) ans= 5 A= 1 2 3

>>max(A) ans=

5
>>max(max(A)) ans= 5

Otras Funciones
Las siguientes funciones tienen un comportamiento similar la max. min ---> valor mnimo

mean ---> valor medio

sum ---> suma de los elementos


prod ---> producto de los elementos sort ---> ordena de menor a mayor cumsum ---> suma acumulativa cumprod ---> producto acumulativo

Los

nmeros complejos se introducen mediante las funciones "i" y "j". El uso de una u otra estar determinado por la preferencia del usuario.
>> >> >>

z = 3 + 4*i q = 3 - 2*j conj(z) 3.0000 - 4.0000i

ans =
>>

imag(z) 4

ans =

% Matrices complejas, se declaran: >>w = [1+j 2-2*j; 3+2*j 4+3*j] w= 1.0000 + 1.0000i 2.0000 - 2.0000i 3.0000 + 2.0000i 4.0000 + 3.0000i >>wp = w % conjugada transpuesta wp = 1.0000 - 1.0000i 3.0000 - 2.0000i 2.0000 + 2.0000i 4.0000 - 3.0000i

>>wt = [1 2; 3 4]+[1 2; 2 3]*j wt = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 2.0000i 4.0000 + 3.0000i

Subndices
Un vector puede subindizarse con otro
X(V) equivale a [X(V(1)) >> x=[4 3 8 X(V(2) .... -1 6]; X(V(n)]

>> y=x([2
y= 3

5])

-1

Control de los Formatos de Salida


format short: format long:
format bank: coma fija con 4 decimales.

format short e: notacin cientfica con 4 decimales.


coma fija con 4 decimales.

format long e: notacin cientfica con 5 decimales.


coma fija con 2 decimales. proporcion relacion (approximation by ratio). se aplica directamente sobre el escalar y matriz.

format rat: format rats:

Ejemplos:
>> r = 2.5 r= 2.5000 >> format short e >> r r= 2.5000e+000

Ejemplos:
>> format long >> r r= 2.50000000000000 >> format long e >> r

r=
2.500000000000000e+000

Ejemplos:
>> format bank >> r r= 2.50 >> format rat >> r r= 5/2

Ejemplos:
>> rat(r) ans = 3 + 1/(-2) >> rats(r) ans = 5/2

Nmeros

A diferencia de una calculadora, cuando trabaja con enteros, MatLab muestra el resultado exacto incluso cuando tiene ms digitos de los que cabran a lo ancho de la pantalla vpa '99^50' ans = .60500606713753665044791996801256e100

Nmeros
>> vpa '174/13' 15 ans = 13.3846153846154 >> digits(15); vpa '174/13' ans = 13.3846153846154 >> vpa 6^400 450

Comandos de redondeo
El menor entero mayor o igual que al real x; ceil(x) >> ceil(4.2) >>ceil(-4.2) ans = ans= 5 -4

Elimina la parte decimal del real x; fix(x) >> fix(5.789) ans =

Comandos de redondeo

Redondeo hacia el entero ms cercano: round. round(x) redondea los elementos de x hacia el entero ms cercano, es decir, si la parte fraccionaria es 0.5 o mayor lo redondea al entero mayor y si es menor de 0.5 al entero menor.

>> round(2.574) ans = 3 >> round(2.4)

ans =
2

Comandos de redondeo

Redondeo hacia menos infinito: floor(x) redondea los elementos de x hacia el entero ms cercano menor o igual que x.

>> floor(4.2) ans = 4

>> floor(4.8)
ans = 4 >> floor(-4.8) ans = -5

Otras caractersticas:
En el espacio de trabajo de Matlab se pueden borrar las variables utilizando la orden clear, seguida del nombre de la variable. >> clear Preguntamos por una variable poniendo el nombre de la variable en la lnea de comandos. Preguntamos por las variables con las rdenes: >> who >> whos

Otras caractersticas:
Utilizando las teclas de edicin. Las teclas de flechas permiten modificar los datos introducidos: Recupera la lnea siguiente. Mueve el cursor hacia la izquierda un carcter. Mueve el cursor hacia la derecha un carcter.
Recupera la lnea previa.

Otros Comandos
Carga variables desde un fichero: load.
carga todas las variables del fichero MATLAB.mat nombrefichero carga todas las variables del fichero nombrefichero.mat

Salva el espacio de trabajo a disco: save.


almacena todas las variables del espacio de trabajo en un fichero llamado MATLAB.mat nombrefichero almacena las variables en un fichero llamado nombrefichero.mat

COMO GUARDAR Y CARGAR DATOS


Si utiliza SAVE solo si todas las variables se guardarn en el archivo por omisin matlab.mat. Se puede especificar el nombre del archivo colocndolo despues de save, ejemplo: save nombre_archivo guarda todas las variables en el archivo llamado nombre_archivo.mat. Si solo desea guardar ciertas variables, escriba sus nombres despues de nombre_archivo; ejemplo: save nombre_archivo a b c no separe las variables con una coma. Cuando quiera recuperar todas las variables escriba load nombre_archivo

I.- En el editor escriba los comandos necesarios para realizar las siguientes tareas:
1) 2) 3) 4) 5) 6) 7) 8) 9) 10)

Crear una vector t cuyos elementos vayan de 1 a 511 de dcima en dcima. Crear un vector b que represente el cuadrado del vector t. Diga cuntas variables se encuentran en memoria. Cul es el tamao del vector t. Obtener las races del siguiente polinomio : Px = x4 + 3x2 10 Obtenga el valor de Px para x= [ 0 3 4 -2 9 7 ] Salvar el espacio de memoria a disco con el nombre prueba1.mat. Borrar todas las variables de memoria y volver a cargar el espacio de memoria desde el archivo prueba1. mat. Listar el directorio donde se encuentran y cambiarse por medio del comando del sistema operativo al directorio c:\matlab7\work

II.- Dadas las matrices:

Calcular:
a) AB - BA

b) A2 + B2 + C2
c) .
A B C

d) Y comprobar que al multiplicar cualquier matriz por su inversa se obtiene la matriz identidad.