Anda di halaman 1dari 15

Centro de Investigacin de

Estudios Avanzados del Instituto


Politcnico Nacional

Visin para el
Control de Robots
Mviles
Tarea 1
Ejercicios introductorios para la visin por computadora en
Matlab

Profesor: Dr. Gerardo Flores


Alumno:
Garca Lozano Zulema Guadalupe
Programa Acadmico: Sistemas Autnomos de Navegacin Area y
Submarina
Fecha: febrero 09, 2016

Ejercicios introductorios para la visin por


computadora en Matlab
Introduccin
MATLAB, es el acronimo de MATrix LABoratory, es una de las principales herramientas
software existentes en el mercado, analisis de datos, simulacion y visualizacion de
resultados, tambien es un lenguaje de programacion con una elevada potencia de calculo
matricial. Una de sus principales ventajes es su entorno grafico de trabajo, la claridad en la
presentacion de los resultados y la versatilidad que presenta para la creacion de nuevas
funcionalidades.
Todas las operaciones que realiza MATLAB se basan en una estructura de datos matricial.
Dentro del entorno de trabajo de MATLAB, se pueden definir nuevos comandos o
funciones, programadas por el usuario.

Desarrollo
1.- Crear vectores aleatorios a y b de 10 unidades de longitud y una matriz cuadrada A
de dimensin 10x10 usando el comando
a = rand(10,1)
b = rand(10,1)

Enseguida ejecute los siguientes comandos.


Producto
a*b
Esta sentencia se utiliza nicamente en caso de tener valores tipo numricos, razn por la
cual se muestra el siguiente error, pues lo que se tiene son vectores.
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
a*b

Esta sentencia realiza la multiplicacin entre vectores.


a.*b
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
a.*b

Divisin
a/b Esta sentencia se utiliza nicamente en caso de tener valores numricos, razn por la
cual el resultado que se muestra es incorrecto, pues lo que se tiene son vectores.
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
a/b

a./b Esta sentencia realiza la divisin entre vectores. En matrices, A./B da como resultado
una matriz cuyo elemento ij es aij/bij.
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
a./b

Transpuesta de una matriz


Sentencia que transpone un vector
b
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores

Sentencia para multiplicar un vector por otro vector transpuesto.


a*b
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
a*b

()

Divisin
Divisin de un vector por una matriz. Lo que hace Matlab es expender el valor numrico a
un tamao apropiado del arreglo para realizar la operacin. Lo cual da como resultado:
a\A
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
a\A

a.\A (Divisin por la izquierda) Este error emerge porque no se tienen los elementos en las
mismas dimensiones. En matrices, A.\B da como resultado una matriz cuyo elemento ij es
bij./ aij., en caso de que A y B sean arreglos de matrices, estas deben tener la misma
dimensin.
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
a.\A

Inversa de una matriz


La funcin inv(X) regresa el inverso de una matriz cuadrada. Un mensaje de alerta aparece
cuando el elemento al que se le determinara su inversa no tiene las dimensiones apropiadas.
En inv(a) se genera el siguiente error debido a que no se le pude determinar la inversa a un
vector.
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
inv(a)

En inv(A) se genera el siguiente resultado, ya que la matriz a evaluar es una matriz


cuadrada.
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
inv(A)

(.)

Determinante de una matriz

La funcin det(A) regresa el determinante de una matriz. Para realizar esta operacin
Matlab utiliza la descomposicin LU de la matriz. En este caso, el resultado se muestra a
continuacin:
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
det(A)

Traza de una matriz


La traza de una matriz da cuadrada A de nxn est definida como la suma de los elementos
de la diagonal principal de A.
La funcin trace(A) da como resultada la traza de la matriz A. A continuacin, se presenta
el siguiente resultado.
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
trace(A)

Rango de una matriz


El rango de una matriz es el numero mximo de columnas (filas respectivamente) que son
linealmente independientes. El rango fila y el rango columna siempre son iguales.
La funcin range(A) da como resultada el rango de la matriz A.
clear all
clc
A=rand(10,10)
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
rank(A)

Otros comandos importantes son:


eye(n) - forma la matriz identidad de tamao (nxn)
zeros(m,n) - forma una matriz de ceros de tamao (mxn)

zeros(n) - forma una matriz de ceros de tamao (nxn)


ones(n) - forma una matriz de unos de tamao (nxn)
ones(m,n) - forma una matriz de unos de tamao (mxn)
rand - este comando genera nmeros pseudoaleatorios distribuidos uniformemente entre 0
y 1. Cada llamada proporciona un nuevo nmero.
rand(n) - genera una matriz de nmeros pseudoaleatorios entre 0 y 1, con
distribucin uniforme, de tamao nxn.
rand(m,n) - igual que en el caso anterior pero de tamao mxn.
2.- Usando la notacin de los dos puntos (colon :), ejecute las siguientes instrucciones:
1:10 Genera un arreglo de 10 elementos.
clear all
clc
1:10

a(1:5) Muestra los elementos del vector a, que se encuentran desde la posicin 1 hasta la
posicin 5.
clear all
clc
a=rand(10,1) %Vector a de 10 valores
a(1:5)

a(4:9)+b(1:6) Suma los elementos del vector a de la posicin 4 hasta la 9 con los valores
del vector b de la posicin 1 hasta la posicin 6.
clear all
clc
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
a(4:9)+b(1:6)

0.1:0.1:100 Muestra los valores numricos desde 0.1 hasta 100, con un paso de 0.1, esta
lnea es empleada en el condicional for.

3.- Variables booleanas: Ejecute:


bga=b>a Muestra el resultado booleano de la condicin del segundo trmino.
clear all
clc

a=rand(10,1) %Vector a de 10 valores


b=rand(10,1) %Vector b de 10 valores
bga=b>a

lb=find(bga) Regresa el nmero de casilla en donde esa operacin booleana se cumple.


clear all
clc
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
bga=b>a
lb=find(bga)

b(lb) Regresa el valor de la casilla del nmero de casilla que previamente se obtuvo
despus de cumplirse la operacin booleana se cumple.
clear all
clc
a=rand(10,1) %Vector a de 10 valores
b=rand(10,1) %Vector b de 10 valores
bga=b>a
lb=find(bga)
b(lb)

4.- Cree una imagen 'I' aleatoria en escala de grises (valores entre 0-255) de tamao de
256x128 usando el comando rand. Convierta los valores de la imagen a enteros utilizando
uint8. Despliegue los resultados usando los comandos:
image(I) Regresa una imagen equivalente a la matriz generada con el comando rand y
unit8. Siempre mostrara una imagen cuadrada.
clear all
clc
I=uint8(rand(256,128))
image(I)

imshow(I) Muestra una imagen a la medida que se desea.


clear all
clc
I=uint8(rand(256,128))
image(I)
imshow(I)

Conclusion
En este trabajo se describen los resultados de la primera practica de Vision Artificial
empleando el software de Matlab, cuyo objetivo fue practicar las operaciones basicas
elementales entre matrices y vectores, asi como la obtencion de algunas propiedades de las
matrices. Tambien, se colocaron los hallasgos de operacines booleanas entre vectores y por
ultima una pequea introduccion del procesamiento de imgenes.

Bibliografa
Fundamentos de control con Matlab. Enrrique Pinto Bermdez. Ed. Pearson

Anda mungkin juga menyukai