Académique Documents
Professionnel Documents
Culture Documents
I SESIN
Facultad de Ingeniera Civil y Mecnica
Pgina 1 de 127
Dr. Ligdamis A. Gutirrez Espinoza
Docente - Investigador
I GENERALIDADES
Ttulo: Curso
II INTRODUCCIN
El trmino MATLAB proviene de la abreviacin de su nombre completo en ingls MATrix
LABoratory, y cuya traduccin al espaol es Laboratorio de Matrices, est ntimamente
relacionado con la estructura de las matrices, debido a que es programa sobre clculo cientfico
que permite en un entorno amigable, manejar de manera muy sencilla y rpida: vectores,
matrices, crear grficos, realizar clculos, simulaciones de modelos etc.
En este sentido se convierte en una poderosa herramienta que se aplica tanto en el mbito
educativo como a nivel profesional en la industria. Posee una gran cantidad de aplicaciones en
la mayora de problemas prcticos de la ingeniera y las matemticas. Es ampliamente utilizado
en reas como la geofsica, diseo de sistemas de control, procesamiento de seales, simulacin
de sistemas dinmicos, en la optimizacin, problemas de modelaje entre otros, adems posee
una gran capacidad grfica en 2 y 3 dimensiones que ayudan al entendimiento y a la solucin de
problemas complicados de clculo y de sistemas de control.
Es una software de fcil manejo y aprendizaje, incluso que otros programas como Visual Basic,
su entorno de programacin a travs de script y el lenguaje propio de archivos .m hacen de este
lenguaje uno de los ms sencillos de manejar tanto para los docentes, alumnos y diseadores de
aplicaciones para la resolucin de problemas muy complicados de clculo que en otros
lenguajes llevaran muchas lneas de programacin, en Matlab a travs de muchas funciones
pre-establecidas, solo necesita de unas pocas.
III OBJETIVOS
(Expresados como resultados esperables de la Enseanza)
El estudiante Identifica, comprende y utiliza los siguientes aspectos:
1. Qu es el lenguaje matemtico Matlab (alcances y aplicaciones)
2. Instalacin del lenguaje y elementos principales
3. Ambiente Matlab, Manejo del entorno de programacin en Matlab, herramientas del
escritorio y ventanas de Matlab
4. Manejo de Vectores y Matrices
5. Programacin en Matlab (script)
Pgina 2 de 127
Dr. Ligdamis A. Gutirrez Espinoza
Docente - Investigador
6.
7.
8.
9.
10.
11.
12.
13.
IV METODOLOGA
La metodologa del curso se basa en el contacto permanente con la prctica a travs de
ejemplos, de modo que el estudiante pueda familiarizarse al mximo con todos los elementos
del software. A partir de este enfoque eminentemente prctico se pretende dar una orientacin
profesionalal curso, no limitando las clases a exponer contenidos tericos sino a la continua
realizacin de ejercicios prcticos y aplicados en lo ms posible a casos reales. En este sentido,
el curso est planificado para dotar al usuario de una herramienta muy til guindolo desde los
aspectos ms elementales y bsicos hasta algunos de los ms complicados, determinando el
nivel de aprendizaje como intermedio.
V CONTENIDOS
Temario LenguajeMatemtico MATLAB
Unidad I
Conceptos Bsicos: introduccin al lenguaje Matlab
1.1 Qu es un Matlab?
1.2 Instalacin de Matlab
1.3 Ambiente Matlab, Ventanas, herramientas de escritorio y entorno de programacin
1.4 Sintaxis y ayuda de Matlab
1.5 Comandos bsicos
1.6 Clculos desde la ventana de comandos
1.6.1 Operadores aritmticos
1.6.2 Operadores relacionales
1.6.3 Operadores lgicos
Unidad II
Vectores y Matrices
2.1 Vectores y Matrices desde la ventana de comandos
2.2 Operaciones con vectores
2.3 Operaciones con Matrices
2.4 Variables y expresiones con matrices
2.6 Funciones que actan sobre vectores
2.7 Funciones que actan sobre matrices
Unidad III
Programacin en Matlab
3.1 Creacin de archivos .m en Matlab
3.1.1 archivos de comandos (scripts)
Pgina 3 de 127
Dr. Ligdamis A. Gutirrez Espinoza
Docente - Investigador
VI MTODO DE EVALUACIN
La evaluacin estar dividida en: 5 actividades presenciales (trabajo en grupo en las sesiones) =
al 60%, y 5 actividades no presenciales (trabajos de investigacin o ejercicios dados a resolver
como trabajo autnomo), con valor de 40%, lo que suma un 100%, que corresponde a un de 10
puntos de la evaluacin. Vase los cuadros 1 y 2 siguientes, correspondientes a la Evaluacin y
a la asistencia.
Pgina 4 de 127
Dr. Ligdamis A. Gutirrez Espinoza
Docente - Investigador
VII BIBLIOGRAFA
1.- Moore, Holly, 2007 - Matlab para Ingenieros. Pearson Education, Mxico. 624 pg.
2.- Prez, Csar , 2002 -Matlab y sus Aplicaciones en las Ciencias y la Ingeniera. Pearson
Education S.A., Madrid, Espaa. 632 pg.
BIBLIOGRAFA COMPLEMENTARIA:
1.- Creating GraphicalUser Interfaces Ver. 1, 2000 The Math Works, Inc., USA, 180 pg.
BIBLIOGRAFA DIGITAL:
Pgina 5 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Contenido/
Tema
Objetivos
Actividades
Bienvenida/Prese
ntar los
Contenidos
Inciso I
1.1 Introduccin
General. Ver
objetivo del da,
horario, Horarios
y evaluaciones.
1.2 Actividad
diagnstica, 1.3
Conceptos
bsicos
(operadores)
1.3.Actividad
ejercicios
prcticos
1.3. Coevaluacin,
Puesta en comn
ejercicios
*Bienvenida,
*Presentar el plan de
trabajo.
*Introducir la materia
y dar a conocer los
tpicos generales del
curso.
*Comprender los
conceptos del
lenguaje Matlab y su
entorno.
* Conocer los tpicos
generales de Matlab y
Simulink.
* conocer los
comandos bsicos y
las operaciones a
travs de la ventana
de comandos
Inciso II
1.3. Conceptos de
vectores y
matrices en
Matlab
1.4.Conceptos de
frmulas en
Matlab
Conocer las
* Trabajo en los grupos
terminologas, la
sobre los vectores y
sintaxis y el
matrices.
funcionamiento de
Matlab. Conocer los
elementos Conocer el
trabajo con vectores,
matrices y frmulas
en Matlab.
)
* Asignar grupos de
trabajo para algunas de
las prcticas. (3)
* Dinmica de FODA
para evaluacin inicial
de toma de Pulso Inicial
y como integracin entre
el grupo.
* Inst. y Conf. Matlab
* ejercicios de
operaciones bsicas y
comandos en Matlab
* ejercicios de clculos
desde la ventana de
comandos
Metodologa
RR.DD.
Mtodo expositivo
de conferencia
tradicional/
Pizarra, Textos
Uso de proyector
como medio
audiovisual.
Mtodo
demostrativo
prctico de trabajo
en grupo en las
clases prcticas
Evaluacin
Aplicar pequeo
test como
actividad
diagnstica de
avance grupal e
individual. Esto
mediante un
anlisis FODA
(DAFO)
Observaciones
1. Presentar proceso
general del curso
2. Presentar
conceptos bsicos de
simulacin y
abstraccin de
modelos.
Puesta en comn
sobre el resultado
del anlisis FODA
3. Presentar los
elementos de Matlab
y Simulink
Co-evaluacin
ejercicios.
Puesta en comn
resultados
ejercicios
Mtodo expositivo de
Discusin y Puesta
conferencia tradicional/ en comn sobre
Pizarra, Textos
hoja de trabajo 1
Uso de proyector como
medio audiovisual.
Mtodo demostrativo
prctico de trabajo en
grupo en las clases
prcticas
5. Orientar sobre
prxima evaluacin
6. Asignar Ejercicios
prcticos de Matlab
7. Entrega material
(hojas y video)
A = Nmero de Actividad.
RR.DD. = Recursos didcticos
La sesin se dividir en dos bloques con un descanso entre cada uno. Ver a continuacin el
cuadro del horario para indicar los tiempos de cada actividad.
Pgina 6 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
b) HORARIO I SESIN
(29/03/16)
Curso Bsico Matlab.
No.
Horario
Actividad
Recursos
Observacin
8:00 8:10
10
Bienvenida
Presentacin General/Docente
Cartulinas,
Marcadores
Pizarra, Proyector
Toma de Asistencia
con hojas preparadas
8:10 8:25
15
Proyector, Filminas,
Pizarra
Revisin puntos
principales da
8:25 8:40
15
Formacin de grupos/Distribucin de
Material
Proyector
Filminas - Hojas,
DVD
Entrega Material /
OneDrive
8:40 8:50
10
5
6
7
8:50 8:55
8:55- 9:05
9:05 9:10
5
10
9:10 9:20
10
Proyector
Filminas
9:20 9:45
25
Proyector
Filminas
10
9:45 10:00
15
Computadoras
alumnos, pizarra
11
10:00 10:10
10
Pizarra, marcadores
12
10:10 10:30
15
DESCANSO
13
10:30 11:15
45
Proyector, Filminas,
Computadora
14
11:15 11:45
30
Hojas de ejercicios,
computador
Entrega de hoja de
ejercicios No. 1
15
11:45 12:00
15
Hojas de ejercicios,
soluciones, esferos
rojos
Entrega de soluciones
de ejercicios
16
12:00 12:20
20
17
12:20 13:00
40
18
13:00 13:20
20
Co-evaluacin de ejercicios
Proyector, Filminas,
Computadora
Hojas de ejercicios,
computador
Hojas de ejercicios,
soluciones, esferos
rojos
20
Recopilacin Final
Hasta Prxima Sesin
Mircoles 30/03/2016
19
13:20 13:40
Proyector
Filminas, Hojas de
FODA
Hojas de FODA
Distribucin de hojas
para trabajo
Hojas de FODA
Proyector, Filminas,
ordenador
Entrega de hoja de
ejercicios No. 2
Entrega de soluciones
de ejercicios
Orientaciones para la
siguiente sesin.
Entrega hojas trabajo
autnomo y Video
Pgina 7 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
DESARROLLO DE CONTENIDOS
Unidad I
Conceptos Bsicos: introduccin al lenguaje Matlab
1.1 Qu es un Matlab?
1.2 Instalacin de Matlab
1.3 Ambiente Matlab, Ventanas, herramientas de escritorio y entorno de programacin
1.4 Sintaxis y ayuda de Matlab
1.5 Comandos bsicos
1.6 Clculos desde la ventana de comandos
1.6.1 Operadores aritmticos
1.6.2 Operadores relacionales
1.6.3 Operadores lgicos
1.1 Qu es Matlab? (alcances y aplicaciones)
Es un lenguaje de programacin de muy alto nivel basado en vectores, arrays y matrices., de
ambiente interactivo que permite realizar tareas muy complejas, con mayor velocidad que la
mayora de los lenguajes de programacin.MATLAB, es un programa grande de aplicacin, que
se escribi originalmente en FORTRAN y despus se rescribi en C, precursor de C++).
El Matlab fue creado en California por Jack Little and Cleve Moler en 1984, para realizar
clculo matricial en computadoras sin necesidad de conocimientos de programacin.
Est orientado a realizar clculos numricos con vectores y matrices, aunque puede trabajar
tambin con otras estructuras de informacin. En cuyo caso, cada objeto es considerado un
arreglo.
Posee un cdigo de programacin propio llamado M-code que fcilmente es ejecutado en la
ventana de comandos. De esta forma, se crean funciones, etc.
MATLAB es una de las muchas sofisticadas herramientas de computacin disponibles en el
comercio para resolver problemas de matemticas, tales como Maple, Mathematica y MathCad.
A pesar de lo que afirman sus defensores, ninguna de ellas es la mejor. Todas tienen
fortalezas y debilidades. Cada una permitir efectuar clculos matemtico bsicos, pero difieren
en el modo como manejan los clculos simblicos y procesos matemticos ms complicados,
como la manipulacin de matrices. Por ejemplo, MATLAB es superior en los clculos que
involucran matrices, mientras que Maple lo supera en los clculos simblicos.
Tambin, el entorno bsico de MATLAB se complementa con una amplia coleccin de
Toolboxes que contienen funciones especficas para determinadas aplicaciones en diferentes
ramas de las ciencias y la ingeniera.
La Web oficial para documentacin, descarga de programas, ejemplos, y versiones Trial es a
travs del siguiente enlace:
http://www.mathworks.com
Matlab se ejecuta en los siguientes sistemas operativos
Unix: Linux (En todas sus versiones: Ubuntu, Fedora, Susie, etc.), solaris, HP-UX"
MacOS"
MS-Windows (XP, 7, 8, 10)
Pgina 8 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Pgina 9 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Ayuda
Cambio de Directorio
VENTANA DE DIRECTORIO
/ WORKSPACE
VENTANA DE COMANDOS
VENTANA DE HISTORIAL
MATLAB 14
MEN DE ACCIONES
VENTANA DE
DIRECTORIO
VENTANA DE COMANDOS
VENTANA DE
HISTORIAL
VENTANA DE
WORKSPACE
Pgina 11 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Pgina 12 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
>>Ejercicio: Utilizar ayuda para: save, load, open, quit, exit, CD, path, ver, versin
1.6 Clculos desde la ventana de comandos
1.6.1 Operadores aritmticos
Existen en MATLAB dos tipos de operaciones aritmticas: las operaciones aritmticas
matriciales, que se rigen por las reglas del lgebra lineal, y las operaciones aritmticas con
vectores, que se realizan elemento a elemento. Los operadores involucrados se presentan en la
tabla siguiente.
Operador
+
*
.*
\
.\
/
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
./
^
.^
Ejemplos:
>> 2+2
ans =
4
>> 3-4
ans =
-1
>> 2*2
ans =
4
>> 2/3
ans =
0.6667
>> (-2)^10
ans =
1024
NOTA: Para las operaciones entre vectores y matrices es conveniente utilizar en la
multiplicacin, divisin y exponenciacin, los operadores ( .*, ./, y .^)
1.6.2 Operadores relacionales
MATLAB tambin ofrece smbolos para denotar las operaciones relacionales. Los operadores
relacionales ejecutan comparaciones elemento a elemento entre dos matrices y devuelven una
matriz del mismo tamao cuyos elementos son ceros si la correspondiente relacin es cierta, o
unos si la correspondiente relacin es falsa. Los operadores relacionales tambin permiten
comparar escalares con vectores o matrices, en cuyo caso se compara el escalar con todos los
elementos de la matriz.
<
Menor (para complejos slo afecta a partes reales)
<=
Menor o igual (slo afecta a partes reales)
>
Mayor (slo afecta a partes reales)
>=
Mayor o igual (slo afecta a partes reales)
x = = y Igualdad (afecta a los nmeros complejos)
x ~ = y Desigualdad (afecta a los nmeros complejos)
1.6.3 Operadores lgicos
MATLAB ofrece smbolos para denotar las operaciones lgicas. Los operadores lgicos ofrecen
un camino para combinar o negar expresiones relacionales.
~A
A&B
A|B
xor(A,B)
Pgina 15 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
sin(x) seno
cos(x) coseno
tan(z) tangente
asin(x) arcoseno
acos(x) arcocoseno
atan(x) arcotangente
rats(x) aprox. racional
rem(x,y) resto de dividir x por y
sign(x) signo (1 / -1 / 0)
| | Valor absoluto = abs
Enteros:
9 -2 8
Reales:
7.01 -4.2 .0786 1.5e+8 -.667e-12
Complejos:
1+3i -4+j (i j son smbolos que representan la unidad imaginaria)
Caracteres (entre apstrofes): Representa una cadena de caracteres string
Formato de Nmeros:
formatlong
14 cifras significativas
Pgina 16 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
format short
format
format short e
formatlong e
formatrat
formatbank
rem (a,b)
Ejemplo:
Sea
a = 2500
b = 8100
x = a/b
Formato largo de punto flotante con 15 dgitos
format long; x
Formato corto por defecto con 4 cifras decimales
format short; x
Formato largo con 16 decimales ms la potencia de 10 (15 para doble y 7 para sencillo)
format long e; x
Formato corto con 16 decimales ms la potencia de 10 (punto flotante con 5 dgitos)
format short e; x
Formato bancario con dos cifras decimales
format bank; x
Formato en forma de nmero racional aproximado
format rat;x
Ejemplo:
Siendo x = 6 y
x = (48*.0025) - 3/6
Determinar: sqrt(x)
x* abs(x)
Unidad II
Vectores y Matrices
2.1 Vectores y Matrices desde la ventana de comandos
2.2 Operaciones con vectores
2.3 Operaciones con Matrices
2.4 Variables y expresiones con matrices
2.6 Funciones que actan sobre vectores
2.7 Funciones que actan sobre matrices
B = [4 -12 8 -2 8 1]
M=
2
B=
4 -12
-2
Si se coloca un punto y coma entre cada uno de ellos se convierten en vectores columnas.
M = [2;4;0;8]
B = [4;-12;8;-2;8;1]
M=
2
4
0
8
B=
4
-12
8
-2
8
1
Pgina 18 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Manejo de vectores:
Se puede crear una lista de nmeros en un vector que vaya de 1 al 12 colocando dos puntos de la
siguiente manera:
X = (1:12)
X=
1
9 10 11 12
Tambin se puede crear un incremento en la lista, Por ejemplo vamos a crear un vector con una
lista de nmero desde el 0 al 12, incrementndose de 3 en tres, mediante el siguiente comando
X = 0: 3: 12
X=
0
9 12
19 18 17 16 15 14 13 12 11 10
Columns 14 through 21
7
Ahora podemos extraer un elemento del vector de la lista que se ha creado, lo que se denomina
indexado de vectores, ya que cada elemento de la lista posee el siguiente argumento X(i)
siendo i el nmero de la posicin del contenido de la lista. As X(1), X(2),,,X(N), representan
los n nmeros del vector De la lista anterior el valor
Sera igual a la posicin 5ta. Que es el valor 16. Ahora vea cuales son los valores de las
posiciones, 9, 4, 16 y 20
Pgina 19 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Se puede modificar el contenido de un elemento del vector, dndole el valor que se desee. Por
ejemplo: El valor del quinto elemento del vector X1 = 16. Pero queremos asignarle un nuevo
valor, entonces se teclea lo siguiente: X1(5) = 26, con lo que el elemento del vector ha
cambiado de valor.
X1 = 20 19 18 17 26 15 14 13 12. . . . 0
Tambin se pueden extraer rangos de valores. Ejemplo: X1([4,6,15]) X1(4:6)
ans = 17 15
ans = 17 26 15
Transposicin:
Para convertir un vector a vector columna (vector transpuesto), hay que colocar un apstrofe en
la variable que representa al vector. As X, sera el vector columna de X
Ejemplo : A = (14:2:25) y su Transpuesto (o vector columna) A =
A = 14
16 18 20 22 24
A
ans =
14
16
18
20
22
24
Para definir un vector de longitud n, con una particin regular del intervalo [a,b], se teclea
R = linspace( a,b,n)
Ejemplo:
R = linspace (1,20,5)
Creara un vector con una lista de 5 nmeros igualmente espaciados del 1 al 20
R=
1.00005.750010.5000 15.2500 20.0000
Ejemplo: Obtener los elementos del vector M= (1:15) situados entre el octavo y el segundo,
ambos inclusive, separados de dos en dos y comenzando por el onceavo.
M = (11:-2:1)
M=
11
Matrices
Pgina 20 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Al igual que en los vectores, las matrices se expresan en Matlab utilizando corchetes ([ ]);
separando las filas por espacios o comas (,) y las columnas por punto y coma ;. De este modo,
por ejemplo se puede crear un objeto matriz de la siguiente manera:
X = [1 -4 6; 4 0 6; -2 8 2]
X=
1 -4
4 0
-2 8
6
6
2
Recordar que Una matriz cuadrada es aquella que tiene igual nmero de filas y columnas
Submatrices:
Se pueden crear rango de elementos o submatrices con los valores de una matriz o de un vector.
Por ejemplo tenemos la siguiente matriz: B = [ 1 2 3; 4 5 6; 7 8 9]
B=
1 2 3
4 5 6
7 8 9
Se puede crear una submatriz C comprendida entre los elementos (2; 1) y (3; 2) de la siguiente
manera:
C =B(2:3,1:2) lo que dara lo siguiente:
C=
4 5
7 8
Volviendo a la matriz anterior.
X = [1 -4 6; 4 0 6; -2 8 2]
Para obtener la matriz transpuesta se teclea X . Por lo tanto:
X=
1 -4
4 0
-2 8
6
6
2
X =
1
-4
6
4 -2
0 8
6 2
Pgina 21 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
En este caso creamos un vector B compuesto de 4 filas y 15 columnas. El ltimo valor de la fila
le corresponde 3.
B=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Si tecleamos ahora
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
B (15,4) = 5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
Esto pasa, debido a que en la variable B se ha acumulado el valor que se ha introducido a los
vectores. El espacio vaco de la matriz es rellenado por ceros.
Para evitar esto, hay que limpiar previamente los valores de las variables. Esto se hace con la
orden clear.
Se puede teclear >>clear B, con lo que se estara limpiando el valor de la variable B
O la orden general. >>clear all, para limpiar todos los valores de todas las variables que existan.
O de otra forma, darle otro valor diferente a la variable de la que se ha utilizado. Por ejemplo
>>A(15,4) = 5
A=
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Pgina 22 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
Ejemplo:
v=[1, 6, 4, -5, 0, -3]
X = v +3
y = v-2
j = v.^2
sum (x)
Da la suma de los elementos del vector
prod(x)
Da el producto entre los componentes del vector
max(x)
Da el valor mximo entre los componentes del vector
c = conv(a,b) Siendo a y b dos matrices, realiza la multiplicacin polinomial
j = a.^b
w = [ 6 1 2; 1 8 3 ; 2 4 9]
w=
6
1
2
1
8
4
2
3
9
Pgina 24 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
l = eig(w)
l=
12.7068
5.6767
4.6165
[v d] = eig(w) Sabiendo que v representa a los vectores caractersticos y d representa a los
valores caractersticos, determina el valor caracterstico de [v d] de la matriz w
v=
-0.3125 -0.8409 -0.6621
-0.5569 0.5260 -0.3780
-0.7696 -0.1271 0.6470
d=
12.7068
0
0
0 5.6767
0
0
0 4.6165
m=
1.0e+005 *
0.3181 0.6778 0.7204
0.5623 1.2117 1.2828
0.7782 1.6718 1.7740
Matriz identidad
Pgina 25 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
N = zeros(3,6)
Matriz Nula
O = ones(3,6)Matriz Unidad
M=
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
N=
0
0
0
O=
1
1
1
Ejemplo:
Sea A = [ 1 3 5; 7 9 11 ]
a) Se va a anular (0), el elemento (2,3) = al ltimo elemento: A (2, 3 ) = 0
b) Se crea la matriz B, transpuesta de A: B = A
c) Se crea la matriz C, formada por la matriz B y la matriz identidad de orden 3 a
su derecha. C = [ B eye(3) ]
d) Se crea la matriz D, formada por las columnas impares de la matriz C
D = C ( : , 1 : 2 : 5)
e) Se crea la matriz E, formada por la interseccin de las dos primeras filas de C y
sus columnas tercera y quinta
E = C ( [ 1 2], [ 3 , 5 ])
Polinomios
Tenemos el polinomio siguiente:
= 2 + 3 + 1 = 0
Para calcular sus races, se utiliza el comando roots(polinomio). As tenemos
p = [ 2 3 1]
raiz = roots(p)
Pgina 26 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
raiz =
-1.0000
-0.5000
La multiplicacin polinomial para encontrar la solucin del sistema se realiza con el comando:
c = conv(a,b)
a=[15314]
c=
8
b = [ 8 5 2 9 16 ]
x = 1.5708
Y = (2*x.^3 +7*x.^2+3*x-1)./(x.^2-3*x+5*exp(-x))
Y = -23.8354
Ejemplo:
Calcular la parte real, la parte imaginaria, el mdulo y argumentos de los siguientes complejos:
Y4 = i ^ i
a = real ( [ Y1 Y2 Y3 Y4] )
b = imag ( [ Y1 Y2 Y3 Y4] )
c = abs( [ Y1 Y2 Y3 Y4] )
d = angle( [ Y1 Y2 Y3 Y4] )
2.6 Funciones que actan sobre vectores
Las siguientes funciones slo actan sobre vectores (no sobre matrices, ni sobre escalares):
[xm,im]=max(x) mximo elemento de un vector. Devuelve el valor mximo xmy la posicin
que ocupa im
min(x) mnimo elemento de un vector. Devuelve el valor mnimo y la posicin que ocupa
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) desviacin tpica
prod(x) producto de los elementos de un vector
cumprod(x) devuelve el vector producto acumulativo de los elementos de un vector
[y,i]=sort(x) ordenacin de menor a mayor de los elementos de un vector x. Devuelve el vector
ordenado y, y un vector i con las posiciones iniciales en x de los elementos en el vector
ordenado y.
En realidad estas funciones se pueden aplicar tambin a matrices, pero en ese caso se aplican
por separado a cada columna de la matriz, dando como valor de retorno un vector resultado de
aplicarla funcin a cada columna de la matriz considerada como vector. Si estas funciones se
quieren aplicara las filas de la matriz basta aplicar dichas funciones a la matriz traspuesta.
Pgina 28 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Pgina 29 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
II SESIN
Facultad de Ingeniera Civil y Mecnica
Pgina 30 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Unidad III
Programacin en Matlab
3.1 Creacin de archivos .m en Matlab
3.1.1 archivos de comandos (scripts)
3.1.2 sentencia return
3.1.3 sub-funciones
3.2 Entrada y manejo de datos
3.2.1 funcin input
3.2.2 funcin disp
3.3 Funciones en Matlab
3.4 Condiciones y flujos de control en Matlab
3.4.1 Bucleif else
3.4.2 Buclefor
3.4.3 While
3.4.4 Switch
3.4.5 Break y continue
3.4.6 Sentencias try...catch...end
Pgina 31 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Contenido/
Tema
Bienvenida/Prese
ntar los
Contenidos y
objetivos del da
Inciso I
1.1 Introduccin
General. Ver
objetivo del da,
horario, Horarios
y evaluaciones.
1.2 Actividad CoEvaluacin de
ejercicios 1 y 2
1.3 Actividad,
puesta en comn
sobre resultados
de anlisis de
video
1.4 Actividad.
Conferencia
sobre la
programacin en
Matlab
1.5.Actividad
ejercicios
prcticos sobre
programacin
1.3. Coevaluacin,
Puesta en comn
ejercicios
Objetivos
*Bienvenida,
Actividades
* Co-evaluacin de las
hojas de trabajo 1 y 2
*Presentar el objetivo
del da
* Puesta en comn
sobre la hoja de trabajo
*Comprender los
autnomo en base al
conceptos de la
video
programacin en
Matlab, entrada y
* ejercicios de
manejo de datos, as programas conteniendo:
como las funciones y Entrada de datos, flujos
flujos de control
de control
Metodologa
RR.DD.
*Mtodo expositivo
de conferencia
tradicional/
Pizarra, Textos
Uso de proyector
como medio
audiovisual.
*Mtodo
demostrativo
prctico de trabajo
en grupo en las
clases prcticas
Evaluacin
*Co-Evaluacin y
puesta en comn
de los resultados
de las hojas de
ejercicios 1 y 2
*Puesta en comn
sobre el resultado
del anlisis del
video
*Co-evaluacin
ejercicios de
programacin.
Puesta en comn
resultados
ejercicios.
*Discusin y
Puesta en comn
sobre hoja de
trabajo 3
Observaciones
1. Presentar proceso
general del curso
2. Presentar
conceptos bsicos de
simulacin y
abstraccin de
modelos.
3. Presentar los
elementos de Matlab
y Simulink
4. Preparar hojas para
las prcticas con los
ejercicios.
5. Orientar sobre
prxima evaluacin
6. Asignar Ejercicios
prcticos de Matlab
(Hoja 2 de trabajo
Autnomo)
7. Entrega material
(hojas y video)
A = Nmero de Actividad.
RR.DD. = Recursos didcticos
La sesin se dividir en dos bloques con un descanso entre cada uno. Ver a continuacin el
cuadro del horario para indicar los tiempos de cada actividad.
Pgina 32 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
c)
HORARIO I SESIN
(30/03/16)
No.
Horario
Actividad
Recursos
Observacin
8:00 8:10
10
Bienvenida
Presentacin General/Docente
Pizarra, Proyector
Toma de Asistencia
con hojas preparadas
8:10 8:20
10
Proyector, Filminas,
Pizarra
Revisin puntos
principales da
8:20 8:35
15
Hojas de trabajo
autnomo 1
Entrega trabajos
8:35 9:00
25
Hojas de ejercicios 1
y2
Distribucin de hojas
con soluciones 1 y 2
para trabajo
9:00 9:05
9:05- 9:35
30
9:35 9:40
Formacin de grupos/Co-Evaluacin
Ejercicios 1 y 2
Puesta en comn de resultados de
evaluacin
Presentacin creacin de archivos .m
en Matlab
Plenario
9:40 10:00
20
Ejercicios de programacin
10:00 10:20
20
DESCANSO
10
10:20 10:55
35
Computadoras
alumnos, pizarra
11
10:55 11:00
Dudas, aclaraciones
Pizarra, marcadores
12
11:00 11:45
45
13
11:45 12:05
20
14
15
16
12:05 12:10
12:10 12:30
12:30-12:45
10
17
12:45 13:00
15
20
15
Hojas de Tema
Pizarra, Proyector
Hoja de ejercicios
Proyector, Filminas,
Computadora
Proyector, Filminas,
ordenador
Orientaciones para la
siguiente sesin.
Entrega hojas trabajo
autnomo
Pgina 33 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Unidad III
Programacin en Matlab
3.1 Creacin de archivos .m en Matlab
3.1.1 archivos de comandos (scripts)
Primero que nada, hay que ubicarse en el directorio de trabajo, para ello se selecciona en
Matlab, el path o camino en donde se estn los archivos. Esto mediante el cono de cambio de
directorio (ver imgenes ms abajo).
MATLAB puede utilizarse como un lenguaje de programacin de alto nivel que incluye
estructuras de datos, funciones, instrucciones de control de flujo, manejo de entradas/salidas e
incluso programacin orientada a objetos.
Los archivos con extensin (.m) son archivos de texto sin formato (archivos ASCII) que
constituyen el centro de la programacin en MATLAB. Tambin, estos archivos se pueden crear
y modificar con un editor de textos cualquiera. En el caso de MATLAB ejecutado en un
computador bajo Windows, lo mejor es utilizar su propio editor de textos, que es tambin
Debugger.
Existen dos tipos de archivos*.m, los archivos de comandos (llamados scripts en ingls) y las
funciones. Los primeros contienen simplemente un conjunto de comandos que se ejecutan
sucesivamente cuando se teclea el nombre del fichero en la lnea de comandos de MATLAB o
se incluye dicho nombre en otro fichero *.m. Un archivo de comandos puede llamar a otros
archivos de comandos. Si un archivo de comandos se llama desde de la lnea de comandos de
MATLAB, las variables que crea pertenecen al espacio de trabajo base de MATLAB, y
permanecen en l cuando se termina la ejecucin de dicho archivo.
Para crear un nuevo M-archivo se utiliza el Editor/Debugger, que se activa haciendo clic en el
botn de la barra de herramientas de MATLAB. Veamos esto tanto en la versin 7, como en la
14
MATLAB 7.0
Cambio de Directorio
VENTANA DE DIRECTORIO
/ WORKSPACE
VENTANA DE COMANDOS
VENTANA DE HISTORIAL
Pgina 34 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Una vez que ha sido creado, el archivo, .m se guarda, ya sea, con el cono de guardar, o guardar
como, asignndole un nombre en el directorio de trabajo.
MATLAB 14
Abrir nuevo archivo
Cambio de Directorio
MEN DE ACCIONES
VENTANA DE
DIRECTORIO
VENTANA DE COMANDOS
VENTANA DE
HISTORIAL
VENTANA DE
WORKSPACE
Las funciones permiten definir funciones enteramente anlogas a las de MATLAB, con su
nombre, sus argumentosy sus valores de retorno. Los archivos*.m que definen funciones
permiten extender las posibilidades de MATLAB; de hecho existen bibliotecas de archivos*.m
que se venden (toolkits) o se distribuyen gratuitamente (a travs de Internet). Las funciones
definidas en archivos *.m se caracterizan porque la primera lnea (que no sea un comentario)
comienza por la palabra function, seguida por los valores de retorno (entre corchetes [ ] y
separados por comas, si hay ms de uno), el signo igual (=) y el nombre de la funcin, seguido
de los argumentos (entre parntesis y separados por comas).
Para definir una funcin se utiliza la siguiente sintaxis.
La primera lnea de un archivo llamado nombre.m que define una funcin tiene la forma:
function [lista de valores de retorno] = nombre(lista de argumentos)
Donde nombre es el nombre de la funcin. Entre corchetes y separados por comas van los
valores de retorno (siempre que haya ms de uno), y entre parntesis tambin separados por
comas los argumentos. Puede haber funciones sin valor de retorno y tambin sin argumentos.
Recurdese que los argumentos son los datos de la funcin y los valores de retorno sus
resultados. Si no hay valores de retorno se omiten los corchetes y el signo igual (=); si slo hay
un valor de retorno no hace falta poner corchetes. Tampoco hace falta poner parntesis si no hay
argumentos.
En cambio, los scripts son el tipo de M-archivo ms sencillo posible. Un script no tiene
argumentos de entrada ni de salida. Sencillamente est formado por instrucciones MATLAB
Pgina 35 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Ejercicio practica:
Coloque dentro de un archivo .m, las frmulas de los puntos 1 y 2, de la hoja de trabajo 2
(clculo de volumen y de las races). Presente los resultados mediante el comando disp..
Pgina 36 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Ejercicio 2
De acuerdo a los conceptos bsicos de estadstica descriptiva, tenemos los conceptos de:
a) Media aritmtica
mean( )
b) Media Geomtrica
geomean ( )
c) Rango (Calcula el rango de una determinada serie de datos = calcular la diferencia entre
el dato mximo y el mnimo)
rangue( )
d) Mediana de una matriz dada
median( )
e) Desviacin estndar de una matriz dada
std( )
f) Varianza de una matriz dada
var( )
Y los valores siguientes del vector A y de la matriz B respectivamente:
A = [1:30];
B = [5 7 3; 12 55 8; 4 9 16; 2 17 21];
Represente en un script, el clculo de los incisos de a) f) del vector A y de la matriz B
Definicin de una funcin simple:
La evaluacin de una funcin en sus argumentos (o parmetros de entrada)tambin puede
realizarse a travs del comando feval, cuya sintaxis es la siguiente:
feval( archivo,arg1,arg1,..,argn)
Evala la funcin archivo (M-archivo, archivo.m) en los argumentos especificados arg1, arg2,
...,argn
Ejemplo:
Vamos a construir un script, de una funcin que resuelva la ecuacin de segundo grado:
= 2 + +
Cuyos coeficientes son, a, b y c (como parmetros de entrada) y cuyas soluciones son X1 y X2
(como parmetros de salida)
Pgina 37 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Una vez que ya tenemos la funcin, podemos resolver por ejemplo la ecuacin
2 + 2 + 4 = 0
Utilizando el comando feval, en la ventana de comandos de la siguiente manera:
[ x1, x2] = feval (ecuacion, 1, 2, 4)
En donde el nombre de la funcin, es ecuacin, y los argumentos son los coeficientes dela
ecuacin: 1, 2, y 4. El resultado es el siguiente:
x1 =
-1.0000 + 1.7321i
x2 =
-1.0000 - 1.7321i
Pgina 38 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Pgina 39 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
El usuario puede teclear simplemente un vector o una matriz. En cualquier caso, la expresin
introducida es evaluada con los valores actuales de las variables de MATLAB y el resultado se
devuelve como valor de retorno. Observemos un ejemplo de uso de esta funcin:
>> n = input('Teclee por favor el nmero de ecuaciones')
Otra posible forma de esta funcin es la siguiente (obsrvese el parmetro 's'):
>>nombre = input('Diga por favor su nombre?','s')
% La s hace referencia a una cadena de caracteres de tipo string
En este caso el texto tecleado como respuesta se lee y se devuelve sin evaluar, con lo que se
almacena en la cadena nombre. As pues, en este caso, si se teclea una frmula, se almacena
como texto sin evaluarse.
3.2.2 funcin disp
La funcin disp. permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero
sin imprimir su nombre. En realidad, disp. siempre imprime vectores y/o matrices: las cadenas
de caracteres son un caso particular de vectores. Considrense los siguientes ejemplos de cmo
se utiliza:
>>disp('El programa ha terminado')
>> A=rand(4,4)
>>disp(A)
Al ejecutar las sentencias anteriores en MATLAB se observa la diferencia entre las dos formas
de imprimir la matriz A.
Ejemplo 1:
function pares(n)
% Calcula si un nmero es par, impar, positivo, negativo.
% Universidad Tcnica de Ambato
% Curso de Matlab
if n<0,
A = 'n es negativo'
elseif rem(n,2) == 0
A = 'n es par'
else
A = 'n es impar'
end
% FIN
Al dar de entrada:
>>pares(4)
A=
n es par
Pgina 41 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
>>pares(5)
A =n es impar
>>pares(-5)
A =n es negativo
Ejemplo 2:
Clculo del salario de un trabajador. Un trabajador cobra un determinado sueldo por hora hasta
40 horas semanales. Adems si realiza horas extras (ms de 40 horas semanales), dichas horas
se le pagan un 50% ms. En un script se calcula la paga semanal, se pedir que introduzca el
total de horas y el salario por hora. As se visualizar la paga semanal del trabajador.
% Calcula el salario semanal de un trabajador.
% Universidad Tcnica de Ambato
% Curso de Matlab
clear all; close all; clc;
t = input('Introduzca el nmero de horas trabajadas: ');
disp('\ ');
% despliega un salto de lnea
h = input('Introduzca el salario por hora en dlares: ');
Psema = t*h;
if (t > 40)
Psema = Psema + (t-40)*0.5 * h;
end
fprintf(' El pago semanal del trabajador es de %5.2 f Dlares ', Psema);
% FIN
Ejemplo 3:
Una torre de almacenamiento de agua tiene la
geometra que se muestra en la figura. La
parte inferior es un cilindro, y la superior un
cono truncado invertido. Dentro del depsito
hay una boya que indica el nivel del agua.
Escribir una funcin en Matlab que calcule el
volumen de agua dentro del depsito a partir
de la posicin (altura "h") de la boya. La
entrada de la funcin ser el valor de la altura
(h) en metros, y la salida ser el volumen que
ocupa el agua en metros cbicos.
Pgina 42 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
= 12.52 19 +
Donde : 12.5 +
19 (12.52 + 12.5 + 2 )
10.5
14
function v = vagua(h)
close all; clc;
format short;
% Clculo del volumen de agua de un depsito
% Valor de entrada, es el nivel del agua en metros
% Valor de salida, es el volumen de agua en metros cbicos
if h <= 19
v = pi*12.5 ^ 2 * h;
fprintf('El volumen de agua es %5.2f en metros cbicos ', v);
else
rh = 12.5 + 10.5 - (h - 19 ) / 14;
v = pi * 12.5 ^ 2 * 19 + pi * ( h - 19) * (12.5 ^2 + 12.5 * rh + rh ^ 2) / 3;
fprintf('El volumen de agua es %5.2f en metros cbicos ', v);
end
% FIN
3.4.2 Buclefor
MATLAB dispone de su propia versin de la sentencia DO (definida en la sintaxis de la
mayora de los lenguajes de programacin). Esta sentencia permite ejecutarde forma repetitiva
un comando o grupo de comandos varias veces. Porejemplo:
>>fori=1:3, x(i)=0, end % Desde I = 1 hasta 3, vale 0
x=
0
x=
Pgina 43 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
x=
0
=1
(1)
(2)
=
=0
(1) 2+1
2 + 1 !
function y = serie1(x,n)
% La funcin serie1, aproxima el valor del seno de x, utilizando una serie de Taylor
Pgina 44 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
bloque3
end
Al principio se evala la switch_expresion, cuyo resultado debe ser un nmero escalar o una
cadena de caracteres. Este resultado se compara con las case_expr, y se ejecuta el bloque de
sentencias que corresponda con ese resultado. Si ninguno es igual a switch_expresion se
ejecutan las sentencias correspondientes a otherwise. Segn puede verse en el ejemplo anterior,
es posible agrupar varias condiciones dentro de unas llaves (constituyendo lo que se llama un
cell array o vector de celdas, explicado en el apartado 5.4); basta la igualdad con cualquier
elemento del cell array para que se ejecute ese bloque de sentencias. La igualdad debe
entenderse en el sentido del operador de igualdad (==) para escalares y la funcin strcmp() para
cadenas de caracteres).
3.4.5 Break y continue
SENTENCIA BREAK
Al igual que en C/C++/Java, la sentencia break hace que se termine la ejecucin del bucle
fory/owhilems interno de los que comprenden a dicha sentencia.
SENTENCIA CONTINUE
La sentencia continue hace que se pase inmediatamente a la siguiente iteracin del bucle foro
while, saltando todas las sentencias que hay entre el continue y el fin del bucle en la iteracin
actual.
3.4.6 Sentenciastry...catch...end
La construccin try...catch...end permite gestionar los errores que se pueden producir en tiempo
de ejecucin. Su forma es la siguiente:
try
sentencias1
catch
sentencias2
end
En el caso de que durante la ejecucin del bloque sentencias1 se produzca un error, el control
de la ejecucin se transfiere al bloque sentencias2. Si la ejecucin transcurriera normalmente,
sentencias2no se ejecutara nunca. MATLAB dispone de una funcin lasterr que devuelve una
cadena de caracteres con el mensaje correspondiente al ltimo error que se ha producido. En la
forma lasterr('')pone a cero este contador de errores, y hace que la funcin lasterr devuelva la
matriz vaca [] hasta que se produzca un nuevo error.
Pgina 46 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
III SESIN
Facultad de Ingeniera Civil y Mecnica
Pgina 47 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Unidad IV
Grficos en Matlab
4.1 Grficos Bidimensionales 2D
4.1.1 Funcin plot
4.1.2 Estilos, lneas, colores y marcadores en la funcin plot
4.1.3 Uso de herramientas de dibujo (plottools)
4.1.4 comando subplot
4.1.5 control de los ejes: funcin axis()
4.1.6 funcin figure
4.1.7 Dibujo de funciones simples: ezplot, ezpolar, etc.
4.2 Grficos Tridimensionales 3D
4.2.1 Tipos de funciones grficas 3D: ezplor3, ezsurf, etc.
4.2.2 Utilizacin de color en 3D y uso de plottools
4.2.2 Dibujos de mallados: mesh, meshgrid, surf
4.2.3 Dibujos de lneas de contorno: contour
Pgina 48 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Contenido/
Tema
Bienvenida/Prese
ntar los
Contenidos y
objetivos del da
Inciso I
1.1 Introduccin
General. Ver
objetivo del da,
horario, Horarios
y evaluaciones.
1.2 Actividad
presentacin de
trabajos hoja 3
1.3 Actividad,
puesta en comn
sobre resultados
de anlisis de
trabajo
autnomo
1.4 Actividad.
Conferencia
sobre los grficos
en Matlab
1.5.Actividad
ejercicios
prcticos sobre
Grficos
1.3. Coevaluacin,
Puesta en comn
ejercicios
Objetivos
Actividades
*Bienvenida,
* Puesta en comn
sobre la hoja de trabajo
autnomo en base al
artculo
* ejercicios de
programas conteniendo:
grficos en 2D y 3D
Metodologa
RR.DD.
*Mtodo expositivo
de conferencia
tradicional/
Pizarra, Textos
Uso de proyector
como medio
audiovisual.
*Mtodo
demostrativo
prctico de trabajo
en grupo en las
clases prcticas
Evaluacin
*Co-Evaluacin y
puesta en comn
de los resultados
de la hoja de
ejercicios 3
*Puesta en comn
sobre el resultado
del anlisis del
artculo
*Co-evaluacin
ejercicios de
programacin.
Puesta en comn
resultados
ejercicios.
*Discusin y
Puesta en comn
sobre hoja de
trabajo 4
Observaciones
1. Presentar proceso
general del curso
2. Presentar
conceptos bsicos de
grficos en 2D y 3D.
3. Presentar los
elementos de Matlab
para grficos
4. Preparar hojas para
las prcticas con los
ejercicios.
5. Orientar sobre
prxima evaluacin
6. Asignar Ejercicios
prcticos de Matlab
(Hoja 3 de trabajo
Autnomo)
7. Entrega material
(hojas y video)
A = Nmero de Actividad.
RR.DD. = Recursos didcticos
La sesin se dividir en dos bloques con un descanso entre cada uno. Ver a continuacin el
cuadro del horario para indicar los tiempos de cada actividad.
Pgina 49 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
d) HORARIO I SESIN
(31/03/16)
Curso Bsico Matlab.
No.
Horario
Actividad
Recursos
Observacin
8:00 8:10
10
Bienvenida
Presentacin General/Docente
Pizarra,Proyector
Toma de Asistencia
con hojas preparadas
8:10 8:20
10
Proyector, Filminas,
Pizarra
Revisin puntos
principales da
8:20 8:35
15
Hojas de trabajo
autnomo 2
Entrega trabajos
8:35 9:00
25
Hojas de ejercicios 3
9:00 9:05
6
7
9:05- 9:35
30
9:35 9:40
Plenario
9:40 10:00
20
Ejercicios de grficos
10:00 10:20
20
DESCANSO
10
10:20 10:55
35
Computadoras
alumnos, pizarra
11
10:55 11:00
Dudas, aclaraciones
Pizarra, marcadores
12
11:00 11:45
45
13
11:45 12:05
20
14
15
16
12:05 12:10
12:10 12:30
12:30-12:45
10
17
12:45 13:00
20
15
15
Hojas de Tema
Pizarra,Proyector
Hoja de ejercicios 4
Proyector, Filminas,
Computadora
Proyector, Filminas,
ordenador
Orientaciones para la
siguiente sesin.
Entrega hojas trabajo
autnomo
Pgina 50 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Unidad IV
Grficos en Matlab
Las tablas de datos muy grandes son difciles de interpretar. Los ingenieros usan tcnicas de
graficacin para hacer que la informacin se entienda fcilmente. Con una grfica es fcil
identificar tendencias, elegir altos y bajos y aislar puntos de datos que pueden ser mediciones o
clculos de errores. Las grficas tambin se pueden usar como una rpida verificacin para
determinar si una solucin de computadora produce los resultados esperados.
La grfica ms til para los ingenieros es la grfica x-y. Un conjunto de pares ordenados se usa
para identificar puntos sobre una grfica bidimensional; luego los puntos se conectan con lneas
rectas. Los valores de x y y se pueden medir o calcular. Por lo general, a la variable
independiente se le da el nombre x y se grafica en el eje x, y la variable dependiente recibe el
nombre y,y se grafica en el eje y.
NOTA: En Matlab, se coloca las comillas simples (apstrofe) , para definir la funcin, entonces
los cdigos quedarn de la siguiente manera:
y = ('2*sin(x/2)*cos(3*x)');
w = '(2 * x ^ 3) - (5 * y ^ 2)';
h = ('x*exp(-x^2 - y^2)');
Para graficar dichas funciones, como ya estn grabados en memoria: En el caso de la variable
y, sera:
Pgina 51 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
>>ezplot(y)
Lo que da la siguiente grfica:
Nota: Ver dock Figure, en el Panel, para incrustar la figura en el rea de trabajo
Pgina 52 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
ezmesh(f)
Dibuja una grfica de superficie a colores de z=f(x,y), para (x,y), donde el dominio por defecto
es: -2 < x < 2 , -2 < y < 2
Recordemos que la variable w es igual a la funcin:
Pgina 54 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Nota: Ver Rotacin y Grabar imagen (jpg) con las herramientas del men de la imagen.
Pgina 55 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
ezsurf( f)
Dibuja una superficie coloreada de z=f(x,y). Con los mismosargumentos que en ezmesh
Por ejemplo, Con la variable h, veamos ahora la diferencia en relacin a la anterior:
>>ezsurf(h)
Pgina 56 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
>>ezsurf(y)
>>ezsurf(w)
ezcontour(f)
Dibuja las lneas de nivel de la funcin z = f(x,y). De esta forma, construimos las lneas
de nivel de las funciones anteriores:
Nota: Tambin se le puede aplicar un dominio, colocndolo al final Igual que en las anteriores
expresiones
Pgina 57 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
>>ezcontour(h)
>>ezcontour(y)
Pgina 58 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
>>ezcontour(w)
ezcontourf(f)
Realiza la misma funcin que ezcontour, solo que rellena de color slido, las distintas
reas delimitadas por las lneas
>>ezcontourf(h)
Pgina 59 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
>>ezcontourf(y)
>>ezcontourf(w)
Pgina 60 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
ezsurfc( f)
Realiza la misma funcin que ezsurf, y adems dibuja las lneas de nivel
>>ezsurfc(h)
>>ezsurfc(y)
Pgina 61 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
>>ezsurfc(w)
Nota:
>>helpshading
>>helpcolormap
Para ver opciones de sombreado y colores de la forma
Sintaxis: plot(y);
plot(x,y);
plot(x,y,b+,x,z,gx);
% Incluye Estilos de lnea, marcas y colores por cada dato que forman los ejes
Para colocar etiquetas, se coloca el texto, tipo string, entre apstrofes. Los comandos son los
siguientes:
title,
xlabel,
ylabel,
legend,
Grid
Titulo
Etiqueta eje x
Etiqueta eje y
Leyenda de los puntos
Cuadricula (grid on, grid off)
Pgina 62 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Los estilos de lneas, formas y colores estn dados de acuerdo a la siguiente tabla:
SIMBOLO COLOR SIMBOLO
MARCA
SIMBOLO
ESTILO LINEA
b
Azul
.
Puntos
Lnea continua
g
Verde
o
Crculos
:
Lnea punteada
r
Rojo
x
Cruces
-.
Puntos y rayas
c
Cyan
+
Ms
-Lnea Discontinua
m
Magenta
*
Estrellas
y
Amarillo
s
Cuadrados
k
Negro
d
Diamantes
w
Blanco
p
Pentagrama
h
Hexagrama
v
Triangulo hacia abajo
>
Triangulo hacia derecha
<
Triangulo hacia izquierda
^
Triangulo hacia abajo
Ejemplo: Las Temperaturas Medias en el primer semestre de 2014, para las ciudades de
Quito, Guayaquil y Ambato de acuerdo al servicio meteorolgico fueron:
Ciudad/Mes
Quito
Guayaquil
Ambato
28
Realizar un script en Matlab que grafique dichos promedios. Primero obtenemos los
valores del tiempo, esto es en los meses, luego los valores de cada ciudad los hacemos
en vectores de la forma siguiente.
% Grafica de las Temperaturas Medias
% Para tres ciudades
% Limpieza de variables y escritorio
clear all; close all; clc;
% Meses
Mes = 1:6;
% Temperaturas medias
T_Quito = [ 27.2, 27.6, 28.5, 30.1, 29.4, 27.6];
T_Guaya = [ 27.7, 28.0, 28.6, 28.9, 27.8, 27.5];
Pgina 64 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
subplot
Permite graficar m x n figuras en una misma grfica
Sintaxis:
subplot (m, n, k);
% Grafico resultante
subplot(2,2,1); plot(Mes,T_Quito,'b*--',Mes,T_Guaya,'rs:',Mes,T_Ambato,'go-');...
title('Temperaturas Medias I Sem 2014 Quito, Guayaquil, Ambato');...
xlabel('Mes'); ylabel('Temperatura (C)');...
legend('Quito', 'Guayaquil', 'Ambato');grid;
subplot(2,2,2); plot (Mes,T_Quito,'b*--');...
title('Temperaturas Medias I Sem 2014 Quito');...
xlabel('Mes'); ylabel('Temperatura (C)');...
legend('Quito');grid;
subplot(2,2,3);plot(Mes,T_Guaya,'rs:');...
title('Temperaturas Medias I Sem 2014 Guayaquil');...
xlabel('Mes'); ylabel('Temperatura (C)');...
legend('Guayaquil');grid;
subplot(2,2,4);plot(Mes,T_Ambato,'go- ');...
title('Temperaturas Medias I Sem 2014Ambato');...
xlabel('Mes'); ylabel('Temperatura (C)');...
legend(' Ambato');grid;
% FIN
Pgina 66 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
bar
Permite graficar barras en dos dimensiones
Ejemplo, vamos a graficar en barras la temperatura media de Quito
% Grafica de las Temperaturas Medias
% Para tres ciudades, Utilizacion de Bar
% Limpieza de variables y escritorio
clear all; close all; clc;
% Meses
Mes = 1:6;
% Temperaturas medias
T_Quito = [ 27.2, 27.6, 28.5, 30.1, 29.4, 27.6];
T_Guaya = [ 27.7, 28.0, 28.6, 28.9, 27.8, 27.5];
T_Ambato = [ 26.8, 26.9, 27.4, 28.9, 28.3, 27.2];
% Grafico resultante
bar(Mes,T_Quito,'r');
title('Temperaturas Medias I Sem 2013 Quito, Guayaquil, Ambato');
xlabel('Mes'); ylabel('Temperatura (C)');
legend('Quito');grid;
% FIN
La
leyenda la podemos cambiar de posicin de acuerdo a la siguiente tabla
Pgina 67 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
ndice
Localizacin en el Grfico
North
South
East
West
NorthEast
NorthWest
SouthEast
SouthWest
NorthOutside
SouthOutside
EastOutside
WestOutside
NorthEastOutside
NorthWestOutside
SouthEastOutside
SouthWestOutside
Best
BestOutside
Pie
Permite crear grficos de pastel (pie)
% Grafica de las Temperaturas Medias
% Para tres ciudades, Utilizacin de Bar
% Limpieza de variables y escritorio
clear all; close all; clc;
% Meses
Pgina 69 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Mes = 1:6;
% Temperaturas medias
T_Quito = [ 27.2, 27.6, 28.5, 30.1, 29.4, 27.6];
T_Guaya = [ 27.7, 28.0, 28.6, 28.9, 27.8, 27.5];
T_Ambato = [ 26.8, 26.9, 27.4, 28.9, 28.3, 27.2];
% Establecimiento del pie
pie(Mes,T_Quito);
legend('Enero','Febrero','Marzo','Abril','Mayo','Junio','location','BestOutside');
title('Temperaturas Medias I Sem 2014Quito','Color','b');
% FIN
La salida grfica es la siguiente:
IV SESIN
Facultad de Ingeniera Civil y Mecnica
Pgina 71 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Unidad IV
Continuacin con Grficos en Matlab
Unidad V
Interfaces Grficas de Usuario (GUI) en Matlab
5.1 Conceptos bsicos de una GUI
5.2 Elementos bsicos de una GUI
5.2.1 Componentes GUI (widgets): Paneles, texto, botones, etc.
5.2.2 Objetos visuales de la interfaz
5.3 Creacin de grficos y texto
5.4 Programacin de elementos de la GUI: Botones, etc.
5.5 Creacin y diseo de GUI's
Pgina 72 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Contenido/
Tema
Bienvenida/Prese
ntar los
Contenidos y
objetivos del da
Inciso I
1.1 Introduccin
General. Ver
objetivo del da,
horario, Horarios
y evaluaciones de
la sesin pasada.
1.2 Actividad
puesta en comn
video trabajo
autnomo 3
1.3 Actividad,
Conferencia
presentacin de
grficos II
1.4 Actividad.
Actividad
ejercicios
prcticos sobre
grficos
1.5. Actividad
Creacin de GUI
Objetivos
*Bienvenida,
Actividades
* Co-evaluacin de las
hojas de trabajo 3
*Presentar el objetivo
del da
* Puesta en comn
sobre la hoja de trabajo
*Comprender los
autnomo en base al
conceptos de la
video
animacin en Matlab,
mediante los grficos * ejercicios de
programas conteniendo:
*Conocer cmo se
grficos y animaciones
coloca texto dentro
de los grficos?
* Ejercicios de creacin
de GUIs
*Conocer los
conceptos bsicos de
la creacin de
interfaces grficas de
usuario GUI
Metodologa
RR.DD.
*Mtodo expositivo
de conferencia
tradicional/
Pizarra, Textos
Uso de proyector
como medio
audiovisual.
*Mtodo
demostrativo
prctico de trabajo
en grupo en las
clases prcticas
Evaluacin
*Co-Evaluacin y
puesta en comn
de los resultados
de las hojas de
ejercicios 3
*Puesta en comn
sobre el resultado
del anlisis del
video
*Co-evaluacin
ejercicios de
programacin.
Puesta en comn
resultados
ejercicios.
*Discusin y
Puesta en comn
sobre hoja de
trabajo 4
Observaciones
1. Presentar proceso
general del curso
2. Presentar los
elementos de
animaciones en
Matlab
3. Preparar hojas para
las prcticas con los
ejercicios.
5. Orientar sobre
prxima evaluacin
6. Asignar Ejercicios
prcticos de Matlab
(Hoja 4 de trabajo
Autnomo)
7. Entrega material
(hojas y video)
A = Nmero de Actividad.
RR.DD. = Recursos didcticos
La sesin se dividir en dos bloques con un descanso entre cada uno. Ver a continuacin el
cuadro del horario para indicar los tiempos de cada actividad.
Pgina 73 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
e)
HORARIO I SESIN
(24/03/16)
No.
Horario
Actividad
Recursos
Observacin
8:00 8:10
10
Bienvenida
Presentacin General/Docente
Pizarra,Proyector
Toma de Asistencia
con hojas preparadas
8:10 8:20
10
Proyector, Filminas,
Pizarra
Revisin puntos
principales da
8:20 8:35
15
Hojas de trabajo
autnomo 3
Entrega trabajos
8:35 9:00
25
9:00 9:05
6
7
9:05- 9:35
30
9:35 9:40
Plenario
9:40 10:00
20
Ejercicios de programacin
10:00 10:20
20
DESCANSO
10
10:20 10:55
35
Continuacin de presentacin
Computadoras
alumnos, pizarra
11
10:55 11:00
Dudas, aclaraciones
Pizarra, marcadores
12
11:00 11:45
45
13
11:45 12:05
20
14
15
16
12:05 12:10
12:10 12:30
12:30-12:45
10
17
12:45 13:00
Formacin de grupos/Co-Evaluacin
Ejercicios 3
Puesta en comn de resultados de
evaluacin
15
15
Recopilacin Final
Hasta La Prxima
20
Hojas de ejercicios 3
Hojas de Tema
Pizarra,Proyector
Hoja de ejercicios
Proyector, Filminas,
Computadora
Proyector, Filminas,
ordenador
Orientaciones para la
siguiente sesin.
Entrega hojas trabajo
autnomo
Pgina 74 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Unidad IV
Continuacin de Grficos en Matlab
Continuando con las actividades que hasta ahora hemos visto, vamos a visualizar la forma en
que podemos desde una hoja de Excel, tomar los datos y guardarlos en variables, para as tomar
como referencia dichos valores y construir nuestros clculos y grficas.
Ejemplo 1
En el siguiente ejemplo leemos un archivo de Excel, en donde se encuentran los datos de las
temperaturas de las ciudades de los ejemplos anteriores y cargar los datos para trabajar con
ellos.
% Programa de lectura de rango de datos de una hoja de Excel
% Curso de Matlab y Simulink
% Universidad Tcnica de Ambato
%Dr. Ligdamis A. Gutirrez E.
% Marzo 2016
% Limpieza de variables y escritorio
clear all; close all; clc;
% Apertura del archivo, lee el nombre
archivo = 'ejemplo1.xlsx';
% Apertura de la hoja de Excel, especifica el nombre
hoja = 1;
% Lee el rango de los datos, desde la celda B3 a la celda D8
Rango = 'B3:D8';
% En la variable datos, almacena en una matriz dichos datos
disp('Los valores de los datos son: ');
Datos = xlsread(archivo,hoja,Rango);
format short g; % Mejor forma de presentar datos flotantes hasta 5 dgitos
disp(Datos);
% FIN
La salida de esto ser lo siguiente:
Los valores de los datos son:
27.2
27.7
26.8
27.6
28
26.9
28.5
28.6
27.4
30.1
28.9
28.9
29.4
27.8
28.3
27.6
27.5
27.2
Pgina 75 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Con esto vemos que leemos, almacenamos y presentamos todo un rango almacenado en una
hoja de Excel, que puede ser en este caso una matriz.
Ahora bien, si lo que queremos es como en los ejemplos de temperatura, separar cada uno de los
datos, para tenerlos disponibles como vectores, entonces debemos de hacer lo siguiente en el
script:
Ejemplo 2
% Programa de lectura de rango de datos de una hoja de excel
% Curso de Matlab y Simulink
% Universidad Tcnica de Ambato
% Dr. Ligdamis A. Gutirrez E.
% Marzo 2016
% Limpieza de variables y escritorio
clear all; close all; clc;
% Meses
Mes = 1:6;
% Apertura del archivo, lee el nombre
archivo = 'ejemplo1.xlsx';
% Apertura de la hoja de excel, especifica el nombre
hoja = 1;
% Lee el rango de los datos
Rango1 = 'B3:B8';
Rango2 = 'C3:C8';
Rango3 = 'D3:D8';
% En la variable datos, almacena en una matriz dichos datos
disp('Los valores de los datos son: ');
Datos1 = xlsread(archivo, hoja, Rango1);
disp('Datos Quito: Columna B3 a B8');
disp(Datos1);
Datos2 = xlsread(archivo, hoja, Rango2);
disp('Datos Guayaquil: Columna C3 a C8');
disp(Datos2);
Datos3 = xlsread(archivo, hoja, Rango3);
disp('Datos Ambato: Columna D3 a D8');
disp(Datos3);
% Grafico resultante de la lectura de los datos en Excel
plot(Mes,Datos1,'b*--',Mes,Datos2,'rs:',Mes,Datos3,'go-');...
title('Temperaturas Medias I Sem 2014 Quito, Guayaquil, Ambato');...
xlabel('Mes'); ylabel('Temperatura (C)');...
legend('Quito', 'Guayaquil', 'Ambato');grid;
Pgina 76 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
% FIN
El resultado es que presenta los datos individuales y la Grfica resultante, solo que en este caso,
no lo estamos leyendo del programa, si no de los datos almacenados en una hoja de Excel.
Los valores de los datos son:
Datos Quito: Columna B3 a B8
27.2
27.6
28.5
30.1
29.4
27.6
Datos Guayaquil: Columna C3 a C8
27.7
28
28.6
28.9
27.8
27.5
Datos Ambato: Columna D3 a D8
26.8
26.9
27.4
28.9
28.3
27.2
Nota: Hay que recordar, que el archivo de Excel debe de estar en el directorio de trabajo, o
poner la ruta en donde se encuentra.
Pgina 77 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Animaciones:
Las animaciones son bastantes tiles para representar el movimiento de una funcin, partcula a
travs del tiempo, etc. Para ello se utilizan los comandos de Matlab, "getframe", "movie" entre
otros: Una animacin o pelcula se compone de varias imgenes. denominadas cuadros o
frames. La funcin "getframe", devuelve el vector columna con la informacin necesaria para
poder reproducir la imagen que se representa en la figura o ventana grfica que se encuentra
activa. Se utiliza dentro de un ciclo for, para crear un arreglo con varios frames de una
animacin.
getframe: devuelve el contenido de la grfica encerrada entre los ejes
movie(M) reproduce la pelcula almacenada en la matriz M, la cual debe de ser un arreglo de
frames o cuadros de animacin generalmente creados a partir de getframe.
movie(M,N) reproduce la pelcula N veces. Si N es negativo, entonces se reproduce N veces
hacia adelante y hacia atrs. Si N es un vector, el primer elemento es el nmero de veces que se
reproduce la pelcula y los restantes se toma como una lista de frames o cuadros a reproducir.
Ejemplo N = [4 2 5 3 1] se reproducen los cuadros 2, 5, 3 y 1, cuatro veces.
La sintaxis para una animacin es la siguiente:
for j = 1:n
plot_comandos
M(j) = getframe;
end
movie(M)
Ejemplo 3
% Programa de Animacin de la solucin de la ecuacin del transporte
% U_t + 2 U_x = 0
% con condicin inicial U(x,0)=exp(-x2)
% Curso de Matlab y Simulink
% Universidad Tcnica de Ambato
% Dr. Ligdamis A. Gutirrez E.
% Marzo 2016
% Limpieza de variables y escritorio
clear all; close all; clc;
x=-2:0.1:10; % valores del rango en el eje x
% Valor del tiempo que ha de recorrer. En el vector siguiente:
% El valor inicial, desde donde comienza el recorrido
% El valor central o de incremento hace la velocidad
% El valor final, hasta donde llega el recorrido
t=0:0.03:10;
set(gca,'nextplot','replacechildren');
Pgina 78 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
axis([-2 10 0 1]);
% Mediante el bucle for desarrollamos la ecuacin y la animacin
fori=1:length(t);
u=exp(-(x-2*t(i)).^2);
plot(x,u,'r');
M(i)=getframe; % El comando getframe hace mover cada frame de la animacin
end
title('Animacin de la Ecuacin de Transporte');
xlabel('Eje x'); ylabel('Eje y');
% FIN
El resultado es una curva animada que recorre el eje
x desde 0 hasta 10
Ahora en el siguiente ejemplo, realizamos la animacin de una grfica de la ecuacin del calor
Ejemplo 5
Animacin de una grfica en 2D
% Animacin de la solucin de la ecuacin del calor 2d
% U_t = 1/8(U_xx + U_yy)
% en el dominio 0 < x, y < 1
% condicin inicial u(x,y,0)=Sin(pix) Sin(piy)
% para 0<t<3
% Curso de Matlab y Simulink
% Universidad Tcnica de Ambato
% Dr. Ligdamis A. Gutirrez E.
% Marzo 2016
% Limpieza de variables y escritorio
clear all;
close all;
clc;
[x y]=meshgrid(0:.01:1,0:.01:1);
%define una malla para [0,1]x[0,1] con incremento en x y y de 0.01
title('Animacin de la temperatura');
set(gca,'nextplot','replacechildren'); caxis manual;
% permite que todos los grficos usen los mismos lmites en colores.
caxis([-1 1]);
% define los valores mximos para los limites como -1 y 1
axisequal;
%usa la misma escala para los ejes x y
t=0:0.05:3;
%vector de valores para los diferentes tiempos
for j=1:length(t)
z=exp(-1/8*pi^2.*t(j)).*sin(2*pi*x).*sin(2*pi*y);
%evaluacion de la funcin de dos variables
axis off;
%remueve los ejes
pcolor(x,y,z);
%grafica en dos dimensiones
shadinginterp;
%interpolacion de colores
colorbar; % Coloca la barra de color a la derecha de la imagen
% agrega la barra de colores
M(j) = getframe(jet); % Se utiliza la paleta jet
%M(j) = getframe(gcf);
% captura los graficos y los guarda en la matriz M
end
Pgina 80 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
%FIN
Ejemplo 6
Ahora vamos a ver el movimiento de un proyectil
% Programa Proyectil
% Curso de Matlab y Simulink
% Universidad Tcnica de Ambato
% Dr. Ligdamis A. Gutirrez E.
% Marzo 2016
% Limpieza de variables y escritorio
clear all;
close all;
clc;
% x = v0 cos(theta0)t
% y = v0 sin(theta0)t _0.5gt^2
% v0 = 5 m/s, y theta0 = 45
g=9.81; % Valor de la gravedad
theta0=45*pi/180; % Valor del angulo theta
v0=5;
% Valor de la velocidad inicial
t(1)=0;x=0;y=0;
plot(x,y,'o','MarkerFaceColor','b','MarkerSize',8);
axis([0 3 0 0.8]);
M(1)=getframe;
dt=1/128;
for j = 2:1000
t(j)=t(j-1)+dt;
x=v0*cos(theta0)*t(j);
y=v0*sin(theta0)*t(j)-0.5*g*t(j)^2;
plot(x,y,'o','MarkerFaceColor','b','MarkerSize',8)
axis([0 3 0 0.8])
M(j)=getframe;
if y<=0,
break,
end
end
% Utilizamos pause para detener el programa y realizar el movimiento
% nuevamente una vez
pause
movie(M,1)
% FIN
Pgina 81 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Sin embargo, a veces no es necesario utilizar las funciones de animacin para mover una
imagen dentro de una grfica, podemos hacerlo dentro de un ciclo for, esto lo vemos en el
siguiente ejemplo:
Ejemplo 7
% Programa Caida Libre de un Cuerpo
% Curso de Matlab y Simulink
% Universidad Tcnica de Ambato
% Dr. Ligdamis A. Gutirrez E.
% Marzo 2016
% Limpieza de variables y escritorio
clear all;
close all;
clc;
% Valores iniciales
t=0:1/30:3; % Vector tiempo de 0 a 5 s, cada tiempo dividido en 10
g=-9.8; % Gravedad
Vyo=10;
yo=5;
% Ecuaciones a utilizar de caida libre
Vy= Vyo+g*t;
y=yo+Vyo*t+(1/2)*g*t.^2;
x=0*t;
% Grficas de los resultados
for i=1:length(t) % para animar las grafica utilizamos el for
pause(1/50)
Pgina 82 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
close all;
clc;
% Declaramos las variables simblicas a utilizar,
% en este caso la x, si hay ms se separan con espacio
syms x;
% Declaracin de la funcin
y = x.^3+5*x+1;
% Utilizamos subs para sustituir en y el valor de x en 3
% y calcular as su valor en y en la grfica, quedando (3,y)
j = subs(y,x,3);
% Graficamos y usamos holdon para detener la presentacin
% a fin de colocar el punto calculado. En plot marcamos el punto
% con las coordenadas (3,j), donde j es el clculo, en color rojo
% Se utiliza text para poner el texto
% dentro de la grfica, con las coordenadas del punto, que al calcularlo dio 43
ezplot(y); hold on; plot(3,j,'r *'); text(3,j,' Punto (3,43)')
% FIN
La salida grfica es la siguiente:
Pgina 84 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Continuando con la clase prctica veamos la solucin del programa men con switch
%
%
%
%
%
meshgrid(x,y);
% Declaracin de la superficie
Z = X.^4 + (Y/2).^4;
% Dibujo de la grfica en 3D con switch
disp('Grfica de la superficie de X^4 + (Y/2)^4');
disp(' ');
disp('Menu de Opciones: 1-> Mesh, 2-> Meshc, 3 -> surf, 4 -> surfc ');
disp(' ');
n = input('Teclee su opcin 1-4, otro salida: ');
disp(' ');
% Uso de switch - case para el men de opciones
switch n
case (1);
mesh(X,Y,Z);
xlabel('x'); ylabel('y');zlabel('z');...
title('Grafica con mesh');
disp('Pulse cualquier tecla para continuar');
disp(' ');
pause;
case (2);
meshc(X,Y,Z);
xlabel('x'); ylabel('y');zlabel('z');...
title('Grafica con meshc');
disp('Pulse cualquier tecla para continuar');
disp(' ');
pause;
case (3);
surf(X,Y,Z);
xlabel('x'); ylabel('y');zlabel('z');...
title('Grafica con surf');
disp('Pulse cualquier tecla para continuar');
disp(' ');
pause;
case (4);
surfc(X,Y,Z);
Pgina 85 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
1- Ejecutar mbuild
>>mbuild -setup
En esta opcin se indica si desea utilizar un compilador existente en el equipo. Y es la
opcin Yes (S).
2- Elegir el compilador
Si se escribe 1 est bien ya que es el compilador de Matlab Lcc C es la
version. Matlab o mostrar el nombre de su compilador y preguntar si es correcto. Y
es la opcin Yes (S).
3- Ejecutar mcc
>>mcc -m nombredelprograma
Matlab crea varios archivos para el programa. Este proceso puede tardar algunos
minutos. Los archivos sern generados en la misma ubicacin del (nombre del
programa.m) donde estamos trabajando.
4- Copiar el MCR
Para que el programa nombredelprograma.exe se ejecute en cualquier computador
independientemente de que tenga o no Matlab instalado, es necesario incluir la rutina
Pgina 86 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
C:\MATLAB7\BIN\WIN32\mbuildopts\lcccompp.bat
Done . . .
--> "C:\MATLAB7\bin\win32\mwregsvr C:\MATLAB7\bin\win32\mwcomutil.dll"
A travs de dicha pantalla como podemos observar, se crean GUI en blanco (que est por
defecto), y es la primera opcin. Tambin es posible crear GUIs con controles ya pre-definidos,
la segunda opcin, GUIs con Axes o pantallas para colocar imgenes o grficos y un men
(tercera opcin), y GUIs diversas con cajas de dilogos y preguntas, como Desea salir del
Sistema, etc. La segunda pestaa que posee la imagen anterior, es para abrir GUI, que ya
hemos creado, a travs de esta opcin podemos buscar browser, GUI`s que previamente
hemos creado, ya sea para editarlas o para ejecutar acciones diversas desde la pantalla de
edicin.
Al dar clic a la primera opcin de la GUI en blanco se abre la siguiente pantalla.
Pgina 88 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
En dicha pantalla podemos ver el escritorio o panel de trabajo, y a la izquierda las opciones de
elementos o controles que podemos insertar para disear las GUIs. Se ve tambin en la imagen
la pantalla del Inspector de propiedades abierta, en donde se pueden editar las caractersticas o
parmetros de cada objeto que seleccionamos y colocamos en el panel de trabajo.
Ahora vamos a disear una GUI sencilla en la prctica, y es la siguiente:
Vamos a calcular mediante una GUI, la gravedad de un pndulo en el sitio en donde se
encuentra, a partir de la longitud de la cuerda y el perodo en segundos. La frmula del perodo
(T) es la siguiente:
Al despejar la gravedad g, obtenemos la frmula de los clculos. Por lo tanto, los parmetros
de entrada al sistema sern, la longitud de la cuerda (l) y el Perodo (T). Aqu tenemos el diseo
de nuestra GUI :
Pgina 89 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Ocuparemos un axe, llamado axe2, esto se nombra en las propiedades con Tag, para
presentar la frmula que est grabada como imagen en formado bmp, dos cajas de texto
dinmico para edicin, en donde estarn las entradas, y varias de texto esttico,
correspondientes a las etiquetas y a la salida. Tambin estar un control o botn de comandos,
en donde ir la programacin del clculo. El resultado final de la GUI es el siguiente:
Pgina 90 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Pgina 91 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Pgina 92 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
% --- Outputs from this function are returned to the command line.
function varargout = pendulo1_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function edit1_Callback(hObject, eventdata, handles)
% hObject
handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
%
str2double(get(hObject,'String')) returns contents of edit1
as a double
Pgina 93 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
% Perodo en segundos
g = a/(b/(2*pi))^2;
Pgina 94 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
En las GUIs hay una primera parte de cdigo que necesita la interfaz para funcionar, esta no se
debe de editar, y lo dice ah el cdigo.
Pgina 95 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
V SESIN
Facultad de Ingeniera Civil y Mecnica
Anexos
Pgina 96 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Contenido/
Tema
Bienvenida/Prese
ntar los
Contenidos y
objetivos del da
Inciso I
1.1 Introduccin
General. Ver
objetivo del da,
horario, Horarios
y evaluaciones.
1.2 Actividad
presentacin de
trabajos hoja 4
1.3 Actividad,
puesta en comn
sobre resultados
de anlisis de
trabajo
autnomo
1.4 Actividad.
Conferencia
sobre Simulink y
VrBuild
Objetivos
Actividades
Metodologa
RR.DD.
Evaluacin
Observaciones
*Bienvenida,
*Analizas artculos
referentes al trabajo
con Simulink
5. Entrega material
(hojas y
documentacin)
A = Nmero de Actividad.
RR.DD. = Recursos didcticos
La sesin se dividir en un bloque con un descanso. Ver a continuacin el cuadro del horario
para indicar los tiempos de cada actividad.
Pgina 98 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
f)
HORARIO I SESIN
(01/04/16)
No.
Horario
Actividad
Recursos
Observacin
8:00 8:10
10
Bienvenida
Presentacin General/Docente
Pizarra,Proyector
Toma de Asistencia
con hojas preparadas
8:10 8:20
10
Proyector, Filminas,
Pizarra
Revisin puntos
principales da
8:20 8:55
35
Hojas de trabajo 4
Entrega trabajos
Memoria con los
programas y Matlab
8:55 9:20
25
Hojas de evaluacin
docente
9:20 9:25
9:25- 10:00
30
10:00 10:20
20
DESCANSO
10
10:20 10:55
35
Computadoras
alumnos, pizarra
11
10:55 11:00
Dudas, aclaraciones
Pizarra, marcadores
12
11:00 11:45
45
13
11:45 12:15
30
14
12:15 12:35
20
15
12:35 12:45
10
16
12:45 13:00
15
Recopilacin Final
Hasta Prximo Curso
Hojas de Tema
Pizarra,Proyector
Proyector, Filminas,
Computadora
Proyector, Filminas,
ordenador
Despedida
Pgina 99 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Anexos
Introduccin a Simulink
Simulink es una herramienta para el modelado, simulacin y anlisis de sistemas dinmicos.
Soporta tanto sistemas lineales como no lineales ya sea:
a) En tiempo continuo,
b) Muestreados
c) Hbridos y
d) Sistemas multi-frecuencia (contienen sistemas muestreados a diferente frecuencia)
Inicio de Simulink
Desde el men de la ventana principal de Matlab, se da clic al cono que lo representa, como se
observa en la figura siguiente:
Matlab 7.0
Matlab 12a
Matlab 14.0
Una vez que se ejecuta la ventana de Simulink, aparece a la derecha la library browser, o
buscador de libreras, en donde se pueden seleccionar los distintos bloques para disear los
modelos. Simulink contiene una amplia gama de bloques en distintas reas del conocimiento.
Por ejemplo, en la librera Simscape, Foundation Library, hay una sera de bloques en
distintas reas de la ingeniera. Esto se observa en la siguiente pantalla.
Matlab 7.0
Matlab 2014a
Cada uno de los bloques posee adems una serie de bloques adicionales.
Generalmente, los bloques de Simulink, se estructuran de la forma siguiente:
Sources: Entradas o fuentes de seales
Constantes
Senoidales
Cuadradas
Escaln
Aleatorias
Sinks:
Salidas o dispositivos de visualizacin/almacenamiento de variables del sistema
Osciloscopio
Archivo
Grfico
Discrete/linear/nonlinear:
Representan sistemas sencillos mediante su relacin entrada/salida
Discrete: sistemas discretos (muestreados). Dominio z.
Linear: sistemas continuos lineales. Dominio s.
Nonlinear: sistemas continuos no lineales. Dominio t.
Connections:
Se utilizan bien para conectar elementos o para estructurar los modelos.
Subsistema: permite jerarquizar diseos.
Multiplexadores/demultiplexadores: agrupan o desagrupan seales.
Memorias: permiten almacenar valores.
Blocksets/toolboxes:
Elementos especficos para diferentes aplicaciones:
comunicaciones
redes neuronales
control
etc.
Ejemplo Simple 1
1) En la librera sources, buscar el bloque sine wave, onda senoidal, dar clic y
arrastrarla al espacio de trabajo. Podemos ver y modificar sus parmetros dando doble
clic al boque.
2) Ahora, vamos a la librera sinks, o en la librera CommonlyUsed Blocks, y
seleccionamos el bloque scopeo osciloscopio, y lo arrastramos a la ventana de trabajo
y lo colocamos a la derecha del bloque anterior.
3) Una vez hecho esto, vamos a unir los dos bloques, llevando el puntero del ratn, a la
salida del bloque sine wave, vemos que el puntero cambia a una cruz, arrastramos
esto para unirlo a la entrada del bloque scope, y se colocara una fecha entre los dos
bloques, con esto ya hemos unido dichos bloques. Grabamos el modelo, en la ventana
de trabajo, como modelo1.xls.
Ahora vamos a adicionar una ganancia, para ello en la librera CommonlyUsed Blocks,
seleccionamos el bloque Gain, y lo arrastramos a la ventana de trabajo, en medio de los dos
anteriores. Automticamente, la flecha se acomoda entre los tres bloques, si no, tambin se
puede hacer esto de forma manual. Seguidamente damos doble clic, al bloque Gain, y
cambiamos el parmetro de 1 a 3, guardamos los cambios, y ejecutamos de nuevo el modelo y
vemos cmo cambia la forma de la onda. Esto lo vemos en la siguiente imagen.
Ahora modificamos los parmetros del bloque Sine wave, le damos doble clic, y cambiamos
la amplitud de 1, a 1:3, esto es de 1 a 3, guardamos los cambios, ejecutamos el modelo y
veremos el cambio de la seal de salida en el Scope. Esto se observa en la siguiente figura.
Por defecto, la duracin en segundos de la simulacin es de 10. Sin embargo, podemos controlar
el tiempo, a travs de la ventana de propiedades, situada en el men de Simulations En este
caso le hemos dado una duracin de 20. El resultado es el siguiente:
Ejemplo 2
Pgina 106 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador
Vamos a simular la respuesta de un sistema descrito por su funcin de transferencia ante una
determinada seal.
X(s)
x(t)
8
2 +4 +9
Y(s)
y(t)
Con Matlab se puede obtener la respuesta ante un impulso de Dirac, un escaln, etc.,
por ejemplo mediante el siguiente cdigo:
>>g = tf( [8] , [1 4 9]);
g=8/(s^2 + 4s + 9);
>>impulse(g)
>>step(g)
El modelo mediante Simulink con los bloques, step, localizado en sources y el bloque
Transfer Fcn, localizado en la librera Continuos, ms el Scope o osciloscopio, para ver la
salida del sistema. Al dar doble clic al bloque de la funcin de transferencia, modificamos los
parmetros, Numeratorcoefficients Los coeficientes del numerador en 8, y los del
denominador [1 4 9], tambin se puede optar por dejar con variables como X, la del
denominador, y [1 a b] en el denominador, en este caso las entradas se realizaran desde la
ventana de comando de Matlab. El resultado sera el siguiente.
El editor por defecto en Matlab, para simulaciones en 3D es (BUILTIN), se conoce a travs del
siguiente comando
>>vrgetpref('Editor')
ans = *BUILTIN
Para cambiarlo al editor VREALM, se teclea lo siguiente:
>>vrsetpref('Editor', '*VREALM')
Para abrir el editor en donde se realizar las simulaciones hay que teclear desde la ventana de
comandos el siguiente: >>vredit
Ejemplo 5: DISEO MUNDO CAIDA LIBRE VRBUILD SIMULINK
CONSTANTE
Valor 9.8
c) Dar doble clic al bloque y asignar el valor de 9.8, que ser el valor de la gravedad. Darle
nombre al Bloque de Gravedad
d) En la misma librera, seleccionar el bloque Integrador, colocar dos bloques
Integradores en el modelo.
e) El primer Integrador darle el nombre de velocidad, y un valor de 0 como condicin
inicial. Unir este al bloque de Gravedad.
Integrador
Velocidad
Integrador Posicin
Despus de: Velocidad
<
=
=
=
1.5
500*(1.5-y);
sqrt(1.5^3/y);
y;
= 0;
= 1.5;
= 1.5;
Integrador
Despus de: Posicin
funcin.
l)
doble clic y modificar los parmetros: Establecer el ancho de salida a 3, y dejar los
ndices en 2.
p) Las tres entradas del Bus, van a la salida de la funcin de Matlab. La salida a la primera
entrada del bus, la b, va a la segunda entrada. La tercera entrada del Bus se hace un
puente para conectarlo a la salida a de la funcin.
Con esto ya solo falta crear en mundo Virtual y hacer las conexiones a este modelo de
Simulink, configurando sus parmetros y ejecutando la simulacin para ver el efecto.
PARTE II. CREACIN DEL MODELO VIRTUAL
1) Abrir el programa Vrbuid (Teclear vredit) y crear un nuevo proyecto y salvarlo como
Mundo
7)Ahora en nuestra Transformada Tierra (la esfera), en Children, nos vamos a la seccin
Apariencia / Textura e insertamos una Textura de Imagen (cuadrito de imagen en el men
superior). Dentro de ella en la seccin Url, le damos a Browse, para buscar la imagen y
seleccionamos la imagen Mapa, con esto estaremos cargando la esfera con el mapa. O en
otras versiones en Value, colocamos el nombre Mapa.jpg
8) Nos colocamos a nivel de Esfera y damos clic a una nueva transformada que
llamaremos Piso
9) En children de Piso insertar una caja (Box) y darle las siguientes medidas en size
[x=20, y=0.1, z=20]
10) Ahora vamos a aadir una textura al piso. En Children de Box o piso seleccionar
apariencia/texture(SFNode), luego ir al men superior, y seleccionar Nodos / Texture
Library y de la lista Seleccionar Brick (Small), (cemento, etc), dar clic, con eso se
insertar la textura como imagen Brick_Small, Cement, o el que hemos elegido.
Luego dar clic en el cuadro y seleccionar, Headlight, para iluminar y pasar al frente la
seleccin. Podemos mover nuestro piso, de acuerdo a nuestra conveniencia para una
mejor visualizacin.
Fixed-step (para resolver por pasos), sin embargo esto no funciona bien con estados. Por lo
que la modificamos a Variable etep, con un orden por defecto de ode45. Damos clic en
OK, y guardamos nuestro modelo.
VIDEOS
Tremor Monocromtico en el Cotopaxi
https://youtu.be/ZVTg1H7U1-I
Explosin en el Reventador
https://www.youtube.com/watch?v=NPVRTzX2AvU
Esperando este pequeo manual bsico, pueda ser de utilidad tanto a los estudiantes
como a los docentes.
MUCHAS GRACIAS.-