Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Matlab para Ingenieros
Matlab para Ingenieros
para Ingenieros
Ing. Jos Crdova Garca
Capacitacin en MATLAB
Cursos Anteriores:
MATLAB.
MATLAB Aplicado a la Ingeniera.
Nuevo curso:
Introduccin a MATLAB para Ingenieros.
Cursos especializados.
Contenido
Introduccin.
Vectores/Matrices.
Funciones.
Cadenas de Texto.
Graficas 2D.
Graficas 3D.
GUI y GUIDE.
Scripts y Funciones.
Estructuras de
Control.
Celdas.
Aplicaciones.
Excel.
Data Acquisition.
Nombre
Estudios.
Expectativas del curso
Conocimientos de:
MATLAB
Programacin Estructurada
MATLAB
Introduccion
Que es MATLAB
Lenguaje de Programacin.
Alto Rendimiento.
Computacin Tcnica.
Computacin, Visualizacin y Programacin.
Problemas y soluciones en notacin
Matemtica (de Matrices).
Aplicaciones?
Matemticas y Computacin.
Desarrollo y Test de algoritmos.
Modelado, Simulacin y Prototipos.
Anlisis de Datos, exploracin y
visualizacin.
Grficas de Ingeniera y Cientficas.
Desarrollo de Aplicaciones finales (GUI)
Aplicaciones?
MATLAB?
Matrix Laboratory (Laboratorio de Matrices).
Elemento bsico: [Matriz] (en adelante
Arreglo) que no requiere dimensin.
Problemas que involucran matrices y
vectores son consumidores de tiempo (C,
C++, Fortran, etc.)
Entorno de Trabajo
Abra MATLAB.
Identifique:
Ventana de Comandos.
Historial de Comandos.
Directorio Actual.
Espacio de Trabajo.
Barra de Mens.
Nmeros
Por defecto se usa la notacin decimal
convencional.
La letra e se usa para definir notacin
cientfica (x10).
Los nmeros imaginarios se definen usando
las letras i y j.
Nmeros
Los nmeros tienen una precisin de 16
dgitos significativos decimales y un rango
entre 10-308 y 10+308 .
Todas las operaciones en MATLAB se
realizan en precisin doble.
El formato es la manera en como se
muestran los valores
Formato
Usando el comando format:
Variables
Variables
Las variables no requieren de una
declaracin de tipo o tamao.
>>num_estudiantes = 25
MATLAB crea el espacio necesario y asocia
el tipo adecuado para definir esa variable, si
es que no la encuentra en el Workspace.
Variables
Las variables tienen un limite de tamao de
nombre de 31 caracteres.
Deben empezar con una letra SIEMPRE.
NO deben contener caracteres especiales,
salvo el underscore _
Las letras i y j
i y j estan reservadas para definir
numeros complejos.
>>i
>>i=20
>>i
Verifique el comportamiento de i
pi 3.14159265...
i unidad imaginaria
realmin el nmero ms pequeo, 2-1022
realmax el nmero ms grande, 21023
Inf infinito
clc
clear
clear var1, var2
exist(nombre)
quit
who
whos
MATLAB
Vectores
Vectores Fila
Vectores que se ven como filas
Se definen con espacios o comas entre sus
elementos.
>>v = [ 1 3, sqrt(5)]
Verifique el resultado en el workspace.
>> length(v)
Verifique el resultado en el workspace.
Vectores Fila
Definicin Vectores
Se pueden formar vectores a partir de otros
vectores (variables) ya definidos:
>> w = [1 2 3], z = [8 9]
>> cd = [2*z,-w], sort(cd)
Verifique el comportamiento.
El operador :
Ejecute:
>>1:10
Verifique el resultado.
Cual es la funcin del operador :?
De manera general a : b : c produce un
vector con valor inicial a, valor final c e
incrementos de b.
El operador :
Se puede usar el operador : para definir
vectores:
>> r5 = [1:2:6, -1:-2:-7]
Para obtener los elementos del 3 al 6
>> r5(3:6)
Cual sera el resultado de?
r5(6:-2:1)
Vectores Columna
Transpuesta
Se puede convertir un vector fila en un
vector columna y viceversa.
>> w, w', c, c'
Defina el vector complejo:
>> x = [1+3i, 2-2i]
La transpuesta para x corresponder a la
transpuesta conjugada.
Producto de Vectores
Norma de un Vector
El siguiente muestra dos maneras de
obtener la norma (distancia euclidiana) de
un vector:
>> [ sqrt(u*u'), norm(u)]
El operador .
Corresponde al producto Hadamard.
Trabaja sobre vectores del mismo tipo (fila o
columna).
>> u.*v'
Tabulemos la funcin
para
El operador .
MATLAB
Matrices
Ingreso de Matrices
Ingrese en la ventana de comandos:
>>A = [ 16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1 ]
Verifique el resultado.
Use la flecha hacia arriba y reemplace los
espacios en blanco con comas.
Verifique el resultado.
Ejecute: A
Verifique el resultado
Manejo de Subindices
Subindices ser la manera de acceder a un
elemento de una matriz.
Usa los parentesis y el nombre de la
variable.
>>A(1,4)
Verifique el resultado y la relacin con A.
El operador :
>>A(1:4,4)
Verifique el resultado.
Ejecute:
>>A(:,4)
Verifique el resultado?
Cual es la funcin del operador :
manejando subindices?
El operador :
Se puede utilizar el operador : para generar
matrices:
>> D = [1:5; 6:10; 11:2:20]
Verifique el resultado anterior.
Vectores y Matrices
En MATLAB en general todos son arreglos.
Un vector columna ser una matriz de mx1.
Un vector fila ser una matriz de 1xn.
Tamao de Matrices
El comando size nos devuelve la dimensin
de la matriz que se usa como parametro.
>> size(A)
>> size(ans)
El ultimo comando muestra que el valor
retornado por size es en si mismo una matriz
de 1x2.
Tamao de Matrices
Tambin se puede guardar las dimensiones
de una matriz en variables separadas.
>> [r c] = size(A'), S = size(A')
Verifique los valores de r y c y de S.
Verifique tambin los tipos de dato (arreglo)
de dichas variables.
Matrices Especiales
MATLAB provee algunas funciones propias
de un tamao deseado.
ones(m,n) da una matriz de mxn llena de
unos.
>> P = ones(2,3)
zeros(m,n) da una matriz de mxn llena de
ceros.
Z = zeros(2,3)
Matriz Identidad
Es una matriz de ceros pero en su diagonal
principal esta llena de unos.
>> I = eye(3), x = [8; -4; 1], I*x
Note que eye(3) es una matriz cuadrada
identidad.
Verifique el resultado de I*x.
Matriz Diagonal
Es una matriz identidad pero su diagonal
principal no es necesariamente ceros.
>> D = [-3 0 0; 0 4 0; 0 0 2]
El comando diag puede generar una matriz
diagonal a partir de un vector.
>> d = [-3 4 2], D = diag(d)
Matriz Diagonal
Por otro lado si A es una matriz el comando
diag(A) extrae la diagonal principal de dicha
matriz, incluso si la matriz A no es cuadrada.
>> F = [0 1 8 7; 3 -2 -4 2; 4 2 1 1]
>> diag(F)
Verifique la variable ans e identifique la
diagonal de F.
Construccin de Matrices
A veces es necesario generar matrices
grandes a partir de otras mas pequeas (o
vectores).
>> C=[0 1; 3 -2; 4 2]; x=[8;-4;1];
>> G = [C x]
Note que C es una matriz y x es un vector
columna.
Construccin de Matrices
Se pueden construir matrices usando
tambin funciones y operaciones sobre
matrices:
>> J = [1:4; 5:8; 9:12; 20 0 5 4
>> K = [ diag(1:4) J; J' zeros(4,4)]
Pruebe el siguiente comando:
>> spy(K), grid
El operador end
Indica el ultimo elemento.
Ejemplo:
Verifique el resultado.
MATLAB
Comandos y Funciones tiles
Expresiones
Nmeros Aleatorios
Suma de Elementos
Se utiliza el comando sum.
Genere un matriz para probar los siguientes
comandos:
Manejo de valores
Residue
La funcin residue, descompone el cociente
de una fraccin en fracciones parciales.
Teniendo un cociente de la forma:
La funcin es:
>>[r,p,k] = residue(b,a)
Residue
Entrega los resultados para:
Descomponga:
Residue
En fracciones parciales:
>> b=[1 1 1 2];
>> a=[1 0 3 0 2];
>> [r,p,k]=residue(b,a)
El resultado ser:
Sistema Lineal
Use representacin en MATLAB para
resolver un sistema lineal del tipo:
MATLAB
Scripts y Funciones
Scripts
Son archivos de texto (.m) que contienen
comandos de MATLAB.
Para ejecutar los comandos de ese archivo
se debe escribir el nombre del archivo en la
ventana de comandos.
Las variables y resultados son de ambito
GLOBAL.
Scripts
Debe estar contenido en el directorio actual
para poder ejecutarlo (F5 o como comando).
Los nombres de los scripts deben seguir la
regla de las variables de MATLAB.
Mucho ojo con los espacios.
Scripts
El nombre del script no debera interferir con
alguna funcin o con una variable (error
comun).
Los comentarios en MATLAB se generan
con el smbolo %:
>> %Esto es un comentario
Script de Ejemplo
Funciones
Son user-defined a diferencia de las builtin, tambin escritas en .m.
Las buit-in tambin son llamadas funciones
de llamada.
Las user-defined son llamadas funciones de
definicin.
SIEMPRE reciben parametros para realizar
los calculos.
Funciones
Los comandos dentro de las funciones
operan sobre los parmetros.
Las variables y resultados son de ambito
LOCAL.
Los .m de funciones deben encontrarse en
el directorio actual para poder ser llamadas.
Funciones
Luego de ser creadas y siempre que
estemos en el directorio actual donde esta
contenido el .m de la funcin de definicin,
entonces la funcin se convertir en de
llamada.
Tambin se puede agregar funciones de
definicin a MATLAB.
Funciones
El nombre de la funcin no DEBERIA
interferir con alguno de una buit-in, ni de
otra variable (error comn).
El nombre del archivo .m conteniendo a la
definicin de la funcin DEBE ser igual al
nombre de la funcin.
Funciones
La primera linea del archivo debe tener el
formato:
Ejemplo Funciones
MATLAB
Otros Tipos de Datos
Tipos de Datos
Tipos de Datos
Nos devuelve el tipo de dato de x.
Tambien existen comandos que nos dan
informacin lgica sobre cada tipo:
isinteger(x), isfloat(x), ischar(x), islogical(x),
iscell(x), isstruct(x).
isempty(x), isnan(x), isinf(x).
Tipos de Datos
El tipo de Dato entero corresponde:
Conversin de Tipo
Para convertir se usa el nombre del tipo a
generar como si fuera funcin:
>> a = 522.08
>> int8(a)
>> int16(a)
Verifique el redondeo.
Funciones de Redondeo
Funciones de Redondeo
Acceso de Cadenas
El direccionamiento funciona como en
vectores:
Construccin de Cadenas
Asigne:
>> t4 = [t3,' are the first 5 ';...
'characters in the alphabet.']
Asigna el valor:
'ABCDE are the first 5 '
'characters in the alphabet.'
Construccin de Cadenas
Al arreglo de 2x27 t4, es NECESARIO que
ambas filas del arreglo tengan el mismo
numero de caracteres (elementos), eso es
una regla general de arreglos en MATLAB.
Los significan que el comando continua
en la lnea siguiente.
Cadenas y Nmeros
Todo carcter tiene un equivalente en valor
numrico.
str2num convierte una cadena a su
correspondiente representacin numrica.
int2str y num2str convierte
respectivamente un entero y un numero real
a su correspondiente cadena de caracteres.
Cadenas y Nmeros
Deseamos generar la cadena: El valor de pi
es 3.1416'.
[El valor de pi es ',num2str(pi)].
Otro ejemplo:
>> N = 5; h = 1/N;
>> ['The value of N is ',int2str(N),...
', h = ',num2str(h)]
Manejo de Cadenas
El operador == realiza comparaciones entre
vectores (elemento a elemento)
Manejo de Cadenas
MATLAB
Grficas
PLOT
La funcin PLOT realiza grficos con por lo
menos un parmetro.
En el siguiente ejemplo se crea un vector x
con valores entre 0 y 2, se calcula el seno
de esos valores y se grafican los resultados:
PLOT: Ejemplo 1
>>x = 0:pi/100:2*pi;
>>y = sin(x);
>>plot(x,y)
PLOT: Ejemplo 2
> >x = [1; 2; 3; 4; 5]
> >y = [0; .25; 3; 1.5; 2]
> >plot(x,y)
PLOT y Muestreo
Para graficar
para el rango [0,1] se
muestrea la funcin a un numero
suficientemente grande de puntos y luego se
los une con lneas rectas.
Para tomar N+1 puntos igualmente
espaciados a una distancia h:
>> N = 10; h = 1/N; x = 0:h:1;
PLOT y Muestreo
Se define el conjunto:
>> y = sin(3*pi*x);
>> plot(x,y)
Verifique el grfico e identifique que el
numero N es muy pequeo aun.
Cambie N=100 y verifique el resultado.
PLOT y Muestreo
El seno es una funcin continua.
MATLAB trabaja con datos discretos.
PLOT realiza una interpolacin lineal entre
esos datos para graficar.
Mayor cantidad de puntos (muestras) harn
que la grfica sea practicamente continua.
Propiedades de un PLOT
>>xlabel('x = 0:2\pi')
>>ylabel('Seno de x')
>>title('Grfica de la funcin
seno','FontSize',12)
Multi-PLOT
>>x = 0:pi/100:2*pi;
>>y = sin(x);
>>plot(x,y)
>>y2 = sin(x-.25);
>>y3 = sin(x-.5);
>>plot(x,y,x,y2,x,y3)
>>legend('seno(x)','seno(x-.25)','seno(x-.5)')
PLOT y el GCA
Cada llamado de la funcin PLOT es una
peticin para crear un nuevo eje (axis
ventana donde se contiene el grfico).
Cada llamado de PLOT entonces
reemplazar la grfica anterior.
>>hold on
Mantiene el grfico actual en el eje actual.
PLOT y el HOLD
Se puede llamar muchas veces a PLOT pero
no se reemplazar el grfico hasta que
exista un:
>>hold off
Comparar con lo aprendido en Varios
Grficos en un PLOT.
AXIS
La funcin/comando axis ajusta los ejes del
grfico actual. Tiene esta sintaxis:
>>axis([xmin xmax ymin ymax])
Cuando se crea un plot y no se ha definido
axis entonces el axis es automatico:
>>axis auto
AXIS
Pruebe estos valores para axis e identifique
el efecto:
>>axis square
>>axis equal
>>grid on
>>grid off
Resumen
Practica
SUBPLOT
Divide la ventana de graficos en un arreglo
mxn en donde se pueden plotear mxn
grficos.
Se enumeran de izquierda a derecha, de
arriba hacia abajo.
subplot(221) (o subplot(2,2,1)) indica que se
divide en 2x2 grficos y selecciona el 1
subgrfico.
SUBPLOT
x=[1 3 5 9 1 1 6 8 2 3 6 1 2 9 3 4 9 8];
hist(x)
figure
bar(x)
Interprete los resultados.
Practica
Practica
Grafique en un solo panel:
Practica
MATLAB
Estructuras de Control
Estructuras de Control
Se basan en evaluar una expresin si es
verdadera o falsa (1/0).
Estas expresiones son resultados de
operaciones con:
<(menor que), >(mayor que), == (igual a), <=
(menor o igual que), >= (mayor o igual que)
y ~= (distinto a).
Seleccin: IF
Evala una condicin lgica y si dicha
expresin evala un resultado POSITIVO (1)
entonces selecciona ejecutar un grupo de
instrucciones, sino evala otro grupo.
Seleccin: IF
if expr1
comandos_matlab
elseif expr2
otro_comandos_matlab
...
else
aun_otros_comandos_matlab
end
Seleccin: IF
t = rand(1)
if t >0.5
disp(valor es mayor que 0.5)
elseif t <0.25
disp(valor es menor que 0.25)
else
disp(valor est entre 0.25 y 0.5)
end
Repeticin: Lazos
El uso de lazos es o debera ser MUY
LIMITADO en MATLAB por el uso del
operador :.
Los lazos son grandes consumidores de
tiempo.
Tareas de optimizacin regularmente se
encargan de evitar los lazos.
MATLAB
Comandos y Funciones tiles II
Construccin de Vectores
Construccin de Vectores
Se crea vector fila x con los elementos
especificados
primero:ltimo
Se crea vector fila x comenzando con
primero, aumentando en intervalos de
uno, terminando en o antes de ltimo
primero:incremento:ltimo
Se crea vector fila x comenzando con
primero, aumentando en intervalos de
incremento, terminando en o antes de
ltimo
linspace(primero,ltimo,n)
Se crea vector fila x comenzando con
primero,
terminando
en
ltimo,
teniendo n elementos
logspace(primero,ltimo,n)
Se crea vector fila x espaciado
logartmicamente
comenzando
con
10primero, terminando en 10ltimo, teniendo
n elementos
x = [1 3 9 33 0 -2]
x =
x =
x =
x =
Maximo y Minimo
La funcin max opera sobre un vector
retornando el valor mximo.
>> x = [1.3 -2.4 0 2.3], max(x), max(abs(x))
>> [m, j] = max(x)
Cuando tomamos 2 resultados de max, que
representa el 2do. Resultado?
Maximo y Minimo
La funcin min opera d emanera similar a
max.
En el caso de que A sea una matriz max(A)
retorna un vector conteniendo el mximo
elemento de cada columna (similar al
comportamiento de sum).
Busqueda en vectores
El comando find devuelve una lista con las
posiciones de los elementos de un vector
que satisfacen una determinada condicin.
>> x = -1:.05:1;
>> y = sin(3*pi*x).*exp(-x.^2); plot(x,y,':')
>> k = find(y > 0.2)
Verifique el contenido de k e interpretelo.
Busqueda en Vectores
Busqueda en matrices
Busqueda en matrices
A=
-2
0
6
3
5
8
-2
3 ...
4
-1
0
3
4
6
1
5
-1
Busqueda en matrices
Los indices del reordenamiento de la matriz
quedan:
Busqueda en matrices
n devuelve una lista de los lugares de las
entradas de A que cumplen ser menores
que cero, luego A(n) nos devuelve los
valores de los elementos seleccionados.
Polinomios
Los polinomios se definen en base a un
vector de coeficientes.
MATLAB es una herramienta de clculo
numerico.
Polinomios: Funciones
Se pueden realizar algunas funciones, como
obtener las raices del polinomio y tambin
evaluar el polinomio para un valor de x.
>> pol=[1 0 -8 6 -10]
>> roots(pol)
>> polyval(pol,1)
Polinomios: Funciones
Para realizar la multiplicacin entre
polinomios MATLAB usa el producto de
convolucin.
>> pol1=[1 -2 4]
>> pol2=[1 0 3 -4]
>> pol3=conv(pol1,pol2)
Hipermatrices
Matrices de mas de dos dimensiones.
El tercer subindice representa la tercera
dimensin: La profundidad de la
hipermatriz.
Hipermatrices
x(:,:,1)=x1;
x(:,:,2)=x2;
La informacin quedar organizada como se
muestra en la figura:
Hipermatrices
Creacin a partir de otras matrices de dos
dimensiones:
>> AA(:,:,1)=[1 2 3; 4 5 6]
>> AA(:,:,2)=[2 3 4; 5 6 7]
Las funciones comunes para uso con
matrices, tambin pueden manejar
hipermatrices.
Hipermatrices
>> BB=randn(2,3,2)
Verifique el resultado como MATLAB
muestra el contenido de las hipermatrices
pequeas.
>> A=zeros(2,3); B=ones(2,3);
Por su naturaleza la concatenacin se
realiza a traves de funciones.
Hipermatrices
La funcin cat concatena arreglos.
Recibe 3 parametros el primero es la
dimensin a lo largo de la cual concatenar
2 matrices pasadas como parametros.
CAT(2,A,B) is the same as [A,B].
CAT(1,A,B) is the same as [A;B].
Hipermatrices
>> cat(1,A,B)
>> cat(2,A,B)
>> cat(3,A,B)
Verifique como MATLAB arma la matriz
usando cat.
Hipermatrices
Tienen reglas especiales para usar
funciones con ellas.
Todas las funciones de MATLAB que operan
sobre escalares (sin(), cos(), etc.) se aplican
sobre hipermatrices elemento a elemento
(igual que sobre vectores y matrices).
Hipermatrices
Las funciones que operan sobre vectores
(sum(), max(), etc.) se aplican a matrices e
hipermatrices segn la primera dimensin,
resultando un array de una dimensin
inferior.
Hipermatrices
Las funciones matriciales propias del
lgebra Lineal (det(), inv(), etc.) no se
pueden aplicar a hipermatrices. Para
poderlas aplicar hay que extraer primero las
matrices correspondientes (por ejemplo, con
el operador dos puntos (:)).
Hipermatrices: Reshape
reshape(x, 3, 6)
ans =
1 2 3 10 20 30
4 5 6 40 50 60
7 8 9 70 80 90
Manejo de Datos
Matlab permite varias opciones para almacenar las
variables con las cuales se trabaja para su posterior
utilizacin. En todos los casos el comando es save.
Para guardar archivos con cdigo ASCII. La sintaxis
es:
save <nombre del archivo> <variables> -ascii
Manejo de Datos
Todas las variables que se graben usando
este metodo deben tener la misma
dimensin.
Manejo de Datos
Para guardar datos en formato binario:
save <nombre del archivo> <variables>
Manejo de Datos
Supongamos un fichero llamado datos.txt
que tiene, por ejemplo, dos columnas de
valores que son nmeros reales.
Para leer los datos del fichero:
[x1,x2] = textread(datos.txt,%f %f);
Manejo de Datos
Manejo de Datos
Creando un archivo llamado flat.txt que
contenga las lneas:
23.456 56.032 67.802
3.749 -98.906 34.910
El comando A=load(flat.txt) leer estos
valores y los asignar a la matriz A.
MATLAB
Grficas 3D
Grficas en 3 Dimensiones
Graficas en 3 Dimensiones
Se deben generar los valores a graficar,
estos deben ser una matriz.
Ejemplo:
>> z = peaks(10)
>> plot(z)
Graficas en 3 Dimensiones
>> mesh(z)
>> contour(z,10)
>> surf(z)
Se puede cambiar la vista desde la
ventana de comandos:
>> view(0,0)
>> view(90,0)
Superficies
Una superficie tambin se define
matemticamente con una funcin f(x,y).
Para cada valor de (x,y) se calcula la altura
de la funcin: z = f(x,y).
Para plotear esto debemos definir un rango
de x y de y para el grfico.
Superficies
Definiendo el dominio:
x = 2:0.5:4; y = 1:0.5:3;
Definido el dominio debemos definir la
grilla de valores que servirn de los puntos
(x,y) para graficar.
Esto es como relacionar x y y.
Superficies
>> [X,Y] = meshgrid(2:.5:4, 1:.5:3);
>> X
Si tomamos el i-esimo punto desde la
izquierda y el j-esimo punto desde debajo de
la grilla como el correspondiente (i,j) entrada
en una matriz, entonces (X(i,j),Y(i,j)) seran
las coordenadas de ese punto.
Superficies
Plotee la siguiente funcin:
Superficies
Grafique la siguiente superficie:
Superficies
Superficies
Diferentes Dominios
x=[-20,-10,-5,-2,-1,0,1,2,5,10,20]/10;
y=x;
[X,Y]=meshgrid(x,y);
Z=cos(X)+cos(Y);
subplot(3,1,1)
surf(Z);
Diferentes Dominios
axis([0 11 0 11 0 2])
subplot(3,1,2)
surf(x,y,Z);
subplot(3,1,3)
surf(X,Y,Z);
Otros Graficos 3D
MATLAB
Estructuras y Celdas
Tipos de Datos
Estructuras
Permiten guardar valores de diferente tipo
de dato bajo un mismo nombre.
Organizan la informacin, siguen un modelo
de campo-valor.
El acceso a los elementos de cada una de
las claves se hace con .
Estructuras
>> punto.x=2
>> punto.y=3
>> punto.color='rojo
>> punto
Estructuras
Verifique el direccionamiento:
>> punto(1), punto(2)
Y el direccionamiento de campos:
>> campo = x
>> punto.(campo)
>> b{1}=12;
>> b{2}='Red';
>> b{3}=magic(4);
La diferencia con las estructuras es que se
accede a los valores utilizando un ndice en
lugar del nombre del campo.
Trabajar con estructuras es ineficiente
Leer Datos
[tipo, hojas] = xlsfinfo(file.xls)
[ndata, headertext] = xlsread(file.xls', Hoja)
A = xlsread(file.xls', 1, 'A4:B5')
Exportar Datos
Cree un script que permita escribir este
archivo:
MATLAB
GUIDE
GUI
GUI (Graphical User Interface) es util para
presentar un desarrollo final.
Adhiere usabilidad al ajuste de parametros y
visualizacion de un programa
La elaboracin de GUI se puede realizar de
dos formas:
Cdigo a travs de un script
GUIDE que es la herramienta de diseo de
MatLAB.
GUIDE
Para iniciarla ejecute el comando guide en
MATLAB
Seleccione un GUI vacio
GUIDE
Obtendra un formulario en blanco al cual
puede agregar CONTROLES.
Se debe antes preparar un diseo de la GUI
Estructura Jerrquica de
controles
Ejemplo: PLOTTER
Se desea crear una GUI que realice un
PLOT de una funcion determinada.
Primero se ubican los controles basicos para
el programa del menu: axes, static text, edit
box, button.
Plotter
Controles Basicos
Axes: un espacio para dibujar.
Static text: texto que se adhiere a la
pantalla y el usuario no puede editarlo
Edit box: una caja blanca que el usuario
puede modificar
el contenido
Button: realiza una accion cuando el usuario
da click en el.
El Inspector de Propiedades
Cuando le dan doble click a un control,
muestra una ventana listando todas las
propiedades de ese control (fuente, posicion,
tamao, etc.).
Tag: el nombre del control en el codigo, es
mejor renombrarlo por algo identificable.
El Inspector de Propiedades
String: el texto que
aparece en el control.
ForegroundColor:
color del texto.
Background color:
color del control.
Ejecutando
Si presionan la flecha verde en la parte
superior del editor GUI se grabara el trabajo
actual y correra el programa. La primera vez
que lo corra preguntara el nombre del
programa.
Probar corriendo el programa. (que aun no
hace nada).
Ejecutando
Para agregar funcionalidad a la GUI se debe
definir un callback para el boton para que asi
grafique la funcion cuando se presione
Escribiendo Callbacks
Cuando se corra el programa, se crean 2
archivos:
.fig: contiene el esquema grafico de los
controles.
.m: contiene el codigo que define la funcin
callback para cada uno de los controles.
Escribiendo Callbacks
Generalmente no se edita el codigo de
inicializacion del .m.
Probablemente muchos callbacks de
controles se quedaran en blanco.
Se puede seleccionar el control y dar click
derecho para editar el Callback con la
opcin View Callback.
Handles
Cada uno de los objetos de MATLAB tiene
un identificador nico (handle), a los cuales
se les llamar handle o id.
Los identificadores de la ventana activa, de
los ejes activos y del objeto activo se
pueden obtener respectivamente con los
comandos :
Handles
gcf (get current figure) devuelve un entero,
que es el handle de la ventana activa
gca (get current axes) devuelve el handle de
los ejes activos
gco (get current object) devuelve el handle del
objeto activo
delete(handle) borra el objeto correspondiente
y todos sus objetos que dependen de l.
Escribiendo Callbacks
Se puede obtener cualquier propiedad de un
control con la funcion GET. De manera
similar, se puede cambiar el valor de
cualquier propiedad con la funcin SET.
En este caso queremos OBTENER el String
escrito en el edit box y graficarlo.
Escribiendo Callbacks
function PlotButton_Callback(hObject, eventdata,
handles)
x = -10 : 0.1 : 10;
s = get(handles.functionEdit, 'String');
y = eval(s); %eval just evaluates the given string
handles.axes1; %Subsequent commands draw on
axes1.
plot(x, y);
Corriendo el programa
Cuando se modifica el codigo del m-file no
se tiene que volver a correr la GUI (solo se
ha modificado la funcionalidad).
Para correr el GUI se puede usar tambien
desde el command window el nombre de la
GUI como si fuera un script.
Otros controles
Slider bar: el usuario puede moverse
adelante y hacia atrs. La posicion actual es
dada por Value, el cual esta entre un Min y
un Max. El callback se activa en cualquier
momento que el slider es movido.
Check box: el usuario puede activar o
desactivarlo, similar al Radio Button.
Otros controles
Pop-up menu: el usuario puede seleccionar
de una lista de items. En la propiedad String,
se pueden tipear multiples lineas. La opcion
seleccionada actualmente esta dada por
Value.
Panel: un rectangulo para colocar controles,
util para organizar la GUI.
Practica:
Deber re-escribir 3 metodos callback para
la funcionalidad mostrada:
Usar funciones: get y set, conversion de
caracteres, operaciones matematicas, y para
salir muestre un mensaje (msgbox) diciendo
que va a salir del programa durante 3
segundos antes que se cierre (close).
Practica
MATLAB
DAQ
Toolbox: DAQ
El toolbox de Adquisicin de Datos (DAQ) le
permite al usuario capturar y/o generar
seales reales e interactuar con ellas desde
Matlab.
Un sistema de adquisicin de datos es un
conjunto de software y hardware que
permiten a un sistema digital conectarse al
mundo real.
Toolbox: DAQ
Un sistema de adquisicin de datos tpico
est formado de:
Sensores y actuadores
Hardware de adquisicin de datos
Hardware de acondicionamiento de seal
Computadora o procesador
Programa
Esquema de DAQ
Transductores y Hardware
A los sensores y actuadores tambin se les
conoce como transductores.
Transductor es aquel elemento que
convierte una seal de entrada de cierta
naturaleza en una seal de salida de otra
naturaleza.
Transductores y Hardware
Por ejemplo, un micrfono es un sensor que
convierte energa sonora (en forma de
presin) en energa elctrica, mientras que
una bocina es un actuador que convierte
una seal elctrica en una seal sonora.
Transductores y Hardware
El Hardware es el corazn de cualquier
sistema de adquisicin de datos. Su funcin
es convertir seales analgicas provenientes
del mundo real a seales digitales
(convertidores analgico a digital, ADC) y/o
convertir seales digitales a analgicas
(convertidores digital a analgico, DAC).
HW de acondicionamiento de la seal
Generalmente las seales de los sensores
son incompatibles con el hardware de
adquisicin de datos; para lograr la
compatibilidad se requiere acondicionar la
seal.
Por ejemplo, si la seal es muy pequea, es
necesario amplificarla; por el contrario, si la
seal es muy grande se requiere atenuarla.
HW de Acondicionamiento
Tambin es muy comn eliminar
componentes de frecuencias indeseables
que se encuentran presentes en la seal a
procesar. En el caso de las seales de
salida, generalmente estas son de baja
corriente y mediante hardware se les
amplifica y aumenta la corriente.
La computadora y el Software
La computadora proporciona un procesador,
un reloj, un bus para transferir datos y
espacio de memoria o disco para almacenar
datos.
El software de adquisicin de datos permite
intercambiar informacin entre la
computadora y el hardware.
La computadora y el Software
Por ejemplo, los programas tpicos permiten
configurar la tasa de muestreo de una tarjeta
de adquisicin de datos y adquirir un nmero
predefinido de muestras.
Toolbox de DAQ
El toolbox de adquisicin de datos se divide en
tres componentes principales:
Las funciones M establecidas
El motor de adquisicin de datos
Los manejadores (drivers) de la tarjeta de
adquisicin de datos (en este caso, la de
sonido)
DAQ y MATLAB
Adaptadores
Fabricante
National Instruments
ComputerBoards
Agilent Technologies
Tarjetas de sonido para Windows
DAQ Bsico: IN
1. Creacin el dispositivo de objeto. Crear el
objeto del canal analgico de entrada ai
para la tarjeta de sonido
ai=analoginput(winsound)
DAQ Bsico: IN
3. Configurar los valores correspondientes.
Configure la tasa de muestreo a 44.1 KHz y
capture un segundo de muestras (44100
muestras)
set(ai,'SampleRate',44100)
set(ai,'SamplesPerTrigger',44100)
DAQ Bsico: IN
4. Adquirir datos. Iniciar la adquisicin.
Cuando terminen de adquirir todos los datos,
ai automticamente detiene la ejecucin.
start(ai)
DAQ Basico: IN
data = getdata(ai);
plot(data)