Vous êtes sur la page 1sur 127

UNIVERSIDAD TCNICA DE AMBATO

CURSO DE LENGUAJE MATEMTICO MATLAB

CURSO BSICO DE LENGUAJE MATEMTICO MATLAB

I SESIN
Facultad de Ingeniera Civil y Mecnica

Pgina 1 de 127
Dr. Ligdamis A. Gutirrez Espinoza
Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

I GENERALIDADES
Ttulo: Curso

Bsico de Lenguaje Matemtico Matlab y Simulink


Dirigido a: Docentes de la Carrera de Ingeniera Civil y
Mecnica
Duracin: 40 horas
Horario: 8:00 a 14:00 hrs + 4 hrs de Trabajo Autnomo por
da
Fecha: Semana del 28 Marzo al 01 de Abril de 2016
Lugar: Laboratorio Informtico No. 2, tercer piso del
edificio de Civil.
Docente:Ph.D. Ligdamis A. Gutirrez E.

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

6.
7.
8.
9.
10.
11.
12.
13.

Entrada y manejo de datos en Matlab


Manejo de frmulas, texto y clculos en Matlab
Funciones en Matlab
Condiciones y flujos de control en Matlab
Validacin y manejo de errores en Matlab
Graficas en Matlab (2d y 3D)
Interfaz Grfica de Usuario (GUI)
Introduccin a Simulink y simulacin de modelos

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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 Sentenciastry...catch...end
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
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

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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:

1.- Aprenda Matlab 7.0 como si estuviera en Primero


Javier Garca de Jaln, Jos Ignacio Rodrguez, Jess Vidal
Escuela Tcnica Superior de Ingenieros Industriales
Universidad Politcnica de Madrid, Espaa. 136 pginas
URL:
http://www.fiwiki.org/images/d/db/Aprenda_Matlab_7_como_si_estuviera_en_primero.pdf

Pgina 5 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

FICHA Y HORARIO DE CLASE


Planificacin y desglose de actividades de la primera sesin, de acuerdo a lo estipulado en la
planificacin del curso: Curso Bsico Matlab.

a) No. de Sesin: I Sesin:


Unidad: I Conceptos Bsicos: Introduccin al Lenguaje Matlab.
Sub-competencia: Identifica y comprende los conceptos bsicos del lenguaje, su
instalacin, ambiente y entorno de trabajo, as como los comandos bsicos y el manejo
en la ventana de comandos.
Unidad: II Vectores y Matrices:
Sub-competencia: Identifica y comprende los conceptos bsicos del lenguaje, su
instalacin ambiente y entorno de trabajo.

FICHA DE CLASE (Contenidos a desarrollar en la sesin)


A

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

4. Preparar hojas para


las prcticas con los
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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

b) HORARIO I SESIN

(29/03/16)
Curso Bsico Matlab.

La hora de clases es de 60 minutos: 8:00 am. a 14:00 pm.

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

Presentar objetivo da, Presentar


Horario, objetivo da. Plan y
Contenidos del curso, Evaluaciones

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

Explicacin Actividad Diagnstica

5
6
7

8:50 8:55
8:55- 9:05
9:05 9:10

5
10

Trabajo Individual FODA


Trabajo en Grupos FODA
Plenario

9:10 9:20

10

Explicacin de la Instalacin de Matlab


(7.0 y 14.0)

Proyector
Filminas

9:20 9:45

25

Explicacin Entorno Matlab, y


Conceptos bsicos, comandos

Proyector
Filminas

10

9:45 10:00

15

Ejercicios en grupo comandos y


operaciones en la ventana de comandos

Computadoras
alumnos, pizarra

11

10:00 10:10

10

Puesta en Comn, ejercicios

Pizarra, marcadores

12

10:10 10:30

15

DESCANSO

13

10:30 11:15

45

Explicacin, Vectores y Matrices

Proyector, Filminas,
Computadora

14

11:15 11:45

30

Trabajo en Grupos sobre vectores y


Matrices

Hojas de ejercicios,
computador

Entrega de hoja de
ejercicios No. 1

15

11:45 12:00

15

Co-evaluacin de ejercicios por parte


de los grupos

Hojas de ejercicios,
soluciones, esferos
rojos

Entrega de soluciones
de ejercicios

16

12:00 12:20

20

Explicacin frmulas en Matlab

17

12:20 13:00

40

Trabajo en Grupos sobre frmulas

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

Hojas con ejercicios en


grupos

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

1.2 Instalacin de Matlab


Matlab 7.0
En la carpeta que se ha entregado (Curso_Matlab_I_Sesin\Software\), se encuentran las
dos versiones de Matlab que pueden funcionar correctamente. La versin 7.0 es ms general,
requiere menos recursos del sistema y es bastante prctica para la enseanza, est completa y
puede funcionar correctamente en las versiones de Windows, XP, 7 y 8.
Para instalarla hay que dar clic derecho en el icono Setup.exe y ejecutar como administrador.
Una de las primeras preguntas que realiza el paquete al iniciar es poner el nmero de serie. Para
ello hay que ir a la carpeta del crack y ejecutar el Keygen, para ello primero hay que tener
desactivado el antivirus, ya que suele confundirlo con un virus. Cuando se ejecuta el Keygen,
aparece una pantalla con Personal License Password, se le da Ctrl + C para copiar y se va a la
pantalla del Matlab, ah se pega con Ctrl + V, y continua la instalacin. Al pedir el Disco 2, se le
da Enter, ya que los dos discos ya estn juntos.
Una vez finalizada la instalacin, si se ejecuta el programa sobre todo en Windows 7 y 8, puede
aparecer una pantalla indicando un error, este es de incompatibilidad, ya que por defect, est
configurado para ejecutarse en Windows XP. Para solucionarlo, hay que ir al cono de acceso
directo de Matlab, que se ha creado en el escritorio, dar clic derecho e indicarle Propiedades,
en esa pantalla hay que seleccionar la pestaa Compatibilidad y activar la casilla o cuadro que
dice, Modo de Compatibilidad, ahora en el men desplegable que aparece, hay que
seleccionar Windows Vista (Service Pack 2), y seguidamente dar clic a los botones de la parte
inferior, Aplicar, y Aceptar. Con esto ya puede ejecutarse normalmente Matlab en
Windows 7 y 8.
Matlab 14
La versin 2014, trae muchas ms herramientas, adems que ha modificado la interfaz, para
aadir ms funcionalidades, sin embargo, consume muchos ms recursos del sistema, memoria
y espacio. As que el usuario final es quien decide cul de ellas utilizar.
Para Matlab 14, hay que ir a la carpeta de software, en donde se encontrar la carpeta
Matlab803, dentro de ella, se encuentra el icono de instalacin SetupSimple.exe, que es el que
hay que ejecutar, dando clic derecho como administrador. Aparecer una ventana, que no hay
que cerrar hasta que la instalacin haya finalizado. Una vez ejecutado ese programa hay que
seguir las instrucciones, cuando se pregunte si desea activar el programa hay que decir que no,
lo mismo hay que elegir instalar manualmente, sin Internet.
Cuando se le pida nmero de serie, hay que colocar el siguiente:
12313-94680-65562-90832
Una vez finalizado, hay que copiar y pegar (sustituyendo), el folder bin, que se encuentra en
la siguiente ubicacin:
"X:\serial\MatlabX32" or "X:\serial\MatlabX64"
Dependiendo si el sistema es de 32 o de 64 bits, con esto ya se puede iniciar la ejecucin del
Matlab 14. Hay que tener paciencia, porque tarda un poco en comenzar, ya que como hemos
mencionado, requiere de ms memoria y recursos que la versin 7

Pgina 9 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

1.3 Ambiente Matlab, Ventanas, herramientas de escritorio y entorno de programacin.


Al Iniciar Matlab se observan las siguientes ventanas: MATLAB 7.0
Simulink

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

Como se puede observar, en Matlab 14, se incrementa el nmero de opciones a realizar en el


cuadro de men. En general, en todas las versiones poseen una gran command window (ventana
de comandos) a la derecha y, apiladasa la izquierda, se encuentran las ventanas current
Pgina 10 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

directory (directorio actual), workspace (rea de trabajo) y tambin el commandhistory


(historia de comandos). Esta configuracin sin embargo, puede cambiarse a uso del usuario.
Qu Puede hacer Matlab?

Pgina 11 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Pgina 12 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

1.4 Sintaxis y ayuda de Matlab


MATLAB distingue entre maysculas y minsculas de esta forma, la variable a y la variable
A, son distintas. El nombre de las variables sigue las reglas habituales de un lenguaje de
programacin: debe comenzar por una letra, aunque puede contener nmeros; no debe contener
espacios en blanco ni algn tipo de smbolo reservado (coma, punto y coma, dos puntos,
guion,...).
El smbolo >>es el prompt de MATLAB e indica que est listo para aceptar rdenes. Para
ejecutar una orden basta pulsar la tecla ENTER. El nombre que se asigna por defecto a la salida
es ans (abreviatura de answer).
En Matlab todos los datos son matrices, los vectores y los nmeros escalares son casos
particulares de matrices.
El nombre de las variables que utiliza Matlab

El nombre de las variable es case sensitive


El nombre de las variables puede contener hasta 63 caracteres.
El nombre de las variables se puede iniciar en una letra seguida de letras, dgitos o sublneas.
Pgina 13 de 127

Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

No se puede iniciar en (_), no puede contener el signo (-).

Nombre de variables especiales


ans
pi
eps
inf
NaN
i, j
realmin
realmax

Nombre de variable por defecto para resultados


Valor de
la mayor precisin de un nmero en Matlab
Infinito
No es un nmero (0/0)
i = j = sqrt(-1) = raz cuadrada de -1
El nmero real positivo ms pequeo
El nmero real positivo ms grande.

1.5 Comandos bsicos


% Colocar comentarios;

Importante para documentar los programas

Informacin: / clock, / date /, calendar


/ao, mes, da, hora, minuto, segundo / da, mes, ao / mes actual
>>
%lnea de comando, prompt de Matlab
>>clc
% limpia la ventana de comandos, pero no la memoria
>>close
% cierra figuras
>>closeall% cierra todas las figuras
>>clear a
% Borra a de la memoria
>>clear
% Borra todas las variables en el espacio de trabajo
>>clearall% Borra todas las variables, funciones, etc.
>>who
% lista las variables actuales
>>whos
% lista informacin adicional de las variables
>>help
% despliega texto de ayuda en la ventana de comandos
>>;%punto y coma, fin de fila de una matriz y eliminar la impresin en la ventana de comandos
>>. . .
% tres puntos, Continua la sentencia en la siguiente lnea
>>,
% coma, separa sentencias y datos

>>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
+
*
.*
\
.\
/

Funcin que desempea


Suma de escalares, vectores o matrices, a+b
Resta de escalares, vectores o matrices, a - b
Producto de escalares o de matrices,
a*b
Producto de escalares o de vectores
A\B = inv(A)*B, siendo A y B matrices
A.\B = [B(i,j)/A(i,j)], siendo A y B vectores [dim(A)=dim(B)]
Cociente escalar o B/A = B*inv(A), siendo A y B matrices
Pgina 14 de 127

Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

./
^
.^

A./B = [A(i,j)/B(i,j)], siendo A y B vectores [dim(A)=dim(B)]


Potencia de escalares o potencia escalar de matriz (M p), a^b
Potencia de vectores (A.^B = [A(i,j)B(i,j)], A y B vectores)

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)

Negacin lgica (NOT) o complementario de A


Conjuncin lgica (AND) o interseccin de A y B
Disyuncin lgica (OR) o unin de A y B
OR exclusivo (XOR) o diferencia simtrica de A y B (vale 1 si A o B,
pero no ambos, son 1)

Pgina 15 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

NOTA: En muchos contextos es ms comn llamar i a la unidad imaginaria. Por defecto


MATLAB tambin tiene reservada esa letra para la unidad imaginaria. Si se realiza una
asignacin sobre cualquiera de las variables se pierde su valor. Para recuperarlo se puede borrar
su valor (instruccin clear i) o reasignarlo (instruccin i=sqrt(-1)).
Ejemplo:
>>i
ans =
0 + 1.0000i
>>i^2
ans =
-1
>> (2+3i)/(4-i) % para multiplicar por i no hace falta *
ans =
0.2941 + 0.8235i
>> (1+i)^2
ans =
0.000 + 2.0000i
Funciones Matemticas elementales:
sqrt(x) raz cuadrada
abs(x) mdulo
conj(z) complejo conjugado
real(z) parte real
imag(z) parte imaginaria
angle(z) argumento
exp(x) exponencial
log(x) logaritmo natural
log10(x) logaritmo decimal
= pi
x = sum

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

format short
format
format short e
formatlong e
formatrat
formatbank
rem (a,b)
Ejemplo:
Sea

Retorna al formato corto (5 cifras significativas)


Retorna al formato por defecto (corto)
formato corto y notacin exponencial
formato largo y notacin exponencial
formato racional: aproximacin en forma de fraccin
formato bancario
resto de la divisin entre n y m siendo ambos reales

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)

sin(x) cos(x) log(x) exp(x)

x* abs(x)

Cambiar a diferentes formatos.


Operaciones con texto
Para introducir texto o cadenas de caracteres, este se teclea entre comillas simples ('), y se
manejan como vectores filas. Se direccionan y manipulan igual que los vectores. De la misma
forma que con los vectores, se pueden realizar operaciones matemticas con las cadenas de
texto, pero sta operacin se ve como un vector de nmeros en ASCII
El valor ASCII de una cadena, se obtiene con las funciones abs, double , sumando cero. Para
restaurar el valor ASCII a una cadena de caracteres, se utiliza la funcin setstr. Si lo que se
desea es cambiar a minsculas se suma la diferencia entre 'a' y 'A'. El comando disp, sirve
para desplegar en pantalla
Ejemplo: Sea, a = 'pablo y b = 'elena'

abs(a) = 112 97 98 108 111


abs(b) = 101 108 101 110 97

c = a + b=213 205 199 218 208


Pgina 17 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

setstr (a) = pablo

setstr (b) = elena

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

2.1 Vectores y Matrices desde la ventana de comandos


Vector:
Un vector en simplemente una lista ordenada de nmeros. Para escribir un vector en Matlab se
introducen los nmeros separados por comas o espacios entre dos corchetes.
Ejemplo
M = [2,4,0,8]

B = [4 -12 8 -2 8 1]

Se conocen como vectores filas

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

Donde: [a:b:c] = valor mnimo : incremento : valor mximo


Ejercicio: Generar todos los nmeros entre 0 y 50 en incrementos de 0.2
En el caso anterior, y para salidas muy grandes se coloca el punto y coma ; al final de la
instruccin para no ver la salida. De la misma manera, se pueden realizar incrementos tanto
positivos como negativos por ejemplo
X1 = 20: -1: 0
Lo que creara un vector con una lista de nmeros desde el 20 al cero disminuyendo en 1 cada
vez.
X1 =
Columns 1 through 13
20

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

2.2 Operaciones con vectores


Creamos un vector y llenamos el ltimo elemento con un valor determinado
B (4,15) = 3

Pgina 21 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

Tcnicamente estaramos creando un vector N con 15 filas y solo 4 columnas, en donde el


ltimo valor de la cuarta fila es 5. Sin embargo, lo que se obtiene es lo siguiente:
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
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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

Operaciones con vectores y escalares


v+k
v-k
k*v
v/k
k./v
v.^k
k.^v

vector de componentes {vi+k}


vector de componentes {vi-k}
vector de componentes {k*vi}
vector de componentes {vi/k}
vector de componentes {k/vi}
vector de componentes {(vi)^k}
vector de componentes {k^(vi)}

Ejemplo:
v=[1, 6, 4, -5, 0, -3]
X = v +3

y = v-2

j = v.^2

Ejemplo: Si a y b son dos vectores


a+b
a-b
a.*b
a./b
a.^b

vector de componentes {ai+bi}


vector de componentes {ai-bi}
vector de componentes {ai*bi}, componente a comp.
vector de componentes {ai/bi}
vector de componentes {(ai)^bi}

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

Ejemplo: Sean los dos vectores


a=[1, 6, 4, -5, 0, -3]
X = a +b

b=[2, 3, -1, -7, 3, 0]


y = a*b

j = a.^b

2.3 Operaciones con Matrices


Tenemos una matriz dada por la siguiente variable:
Pgina 23 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

w = [ 6 1 2; 1 8 3 ; 2 4 9]
w=
6
1
2

1
8
4

2
3
9

Se puede aadir otra fila a la matriz con la variable x = [ 14 -2 8 ]


Con la instruccin K = [w; x]
K=
6 1 2
1 8 3
2 4 9
14 -2 8
Identificar un elemento de la matriz w (2,3)
ans =
3
Representa el elemento de la segunda fila, tercera columna.
Para seleccionar toda una fila, se colocan los dos puntos :
J = w( 3 , : )
Que selecciona la tercera fila. En cambio:
J= 2 4 9
h= w( : , 2)
Selecciona los elementos de la segunda columna:
h=
1
8
4
Otras operaciones son:
I = det(w) Determina el valor del determinante de la matriz (obtener todos los productos
posibles de una matriz).
I=
333

Pgina 24 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

h = diag(w) Determina la diagonal de una matriz


h=
6
8
9

l = eig(w)

Determina el vector caracterstico de la matriz 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 = expm (w) Representa el valor exponencial de la matriz w

m=
1.0e+005 *
0.3181 0.6778 0.7204
0.5623 1.2117 1.2828
0.7782 1.6718 1.7740

n = inv(w) Representa la matriz inversa de w


hilb(3)Matriz de Hilbert 3x3
rand(2,3) Matriz aleatoria de 2 x 3
M = eye(3,6)

Matriz identidad
Pgina 25 de 127

Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

raiz =
-1.0000
-0.5000

Operaciones con polinomios


Ejemplo:Tenemos dos polinomios

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 ]

45 51 42 104 129 65 52 64, Por lo tanto:

Operaciones con Frmulas


Matlab es ideal para realizar operaciones con funciones y frmulas matemticas complejas. Su
sintaxis es sencilla y fcil de aplicar
Ejemplo:
Calcular el seno y el coseno de los ngulos de cero a 2, incrementando en valores de /2 en
/2
x = sin (0 : pi/2 : 2*pi)
y = sin (0 : pi/2 : 2*pi)
Ejemplo:
Tenemos una funcin dada por la siguiente ecuacin:

Si el valor de x = /2. Entonces:


x = pi/2
Pgina 27 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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:

Le damos valor de Y1, Y2, Y3 y Y4, Entonces:


Y1 = i ^3 * iY2 = (1 + sqrt ( (3) *i) )^ (1 - i )
Y3 = (i ^ i) ^ i

Y4 = i ^ i

Para facilitar la visualizacin >>format short

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

2.7 Funciones que actan con matrices


Aqu un resumen de las funciones ms generales que actan sobre las matrices
[m,n]=size(A) devuelve el nmero de filas y de columnas de la matriz A. Si la matriz
escuadrada basta recoger el primer valor de retorno
n=length(x) calcula el nmero de elementos de un vector x
zeros(size(A)) forma una matriz de ceros del mismo tamao que una matriz A previamente creada
ones(size(A)) dem con unos
A=diag(x) forma una matriz diagonal A cuyos elementos diagonales son los elementos de un
vector ya existente x
x=diag(A) forma un vector x a partir de los elementos de la diagonal de una matriz ya existente A
diag(diag(A)) crea una matriz diagonal a partir de la diagonal de la matriz A
blkdiag(A,B) crea una matriz diagonal de submatrices a partir de las matrices que se lepasan
como argumentos
triu(A) forma una matriz triangular superior a partir de una matriz A (no tiene por qu ser
cuadrada). Con un segundo argumento puede controlarse que se mantengan o eliminen ms
diagonales por encima o debajo de la diagonal principal.
tril(A) dem con una matriz triangular inferior
rot90(A,k) Gira k*90 grados la matriz rectangular A en sentido anti-horario. k es un entero que
puede ser negativo. Si se omite, se supone k=1
flipud(A) halla la matriz simtrica de A respecto de un eje horizontal
fliplr(A) halla la matriz simtrica de A respecto de un eje vertical
reshape(A,m,n) Cambia el tamao de la matriz A devolviendo una matriz de tamao mncuyas
columnas se obtienen a partir de un vector formado por las columnasde A puestas una a
continuacin de otra. Si la matriz A tiene menos demnelementos se produce un error.
Existen muchas ms funciones, pero ello queda como actividad al estudiante, enriquecer
mediante la bibliografa el uso de dichas funciones.

Pgina 29 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

CURSO BSICO DE LENGUAJE MATEMTICO MATLAB

II SESIN
Facultad de Ingeniera Civil y Mecnica

Pgina 30 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

FICHA Y HORARIO DE CLASE


Planificacin y desglose de actividades de la segunda sesin, de acuerdo a lo estipulado en la
planificacin del curso: Curso Bsico Matlab.

a) No. de Sesin: II Sesin:


Unidad: IIIProgramacin en Matlab.
Sub-competencia: Identifica y comprende los conceptos bsicos de la programacin
en el lenguaje Matlab, la entrada y manejo de datos, las funciones y los flujos de
control.

FICHA DE CLASE (Contenidos a desarrollar en la sesin)


A

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

c)

HORARIO I SESIN

(30/03/16)

La hora de clases es de 60 minutos: 8:00 am. a 14:00 pm.

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

Presentar objetivo da, Presentar


Horario

Proyector, Filminas,
Pizarra

Revisin puntos
principales da

8:20 8:35

15

Puesta en comn actividad trabajo


autnomo video

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

Presentacin flujos de control (if else,


for, switch.) en Matlab

Computadoras
alumnos, pizarra

11

10:55 11:00

Dudas, aclaraciones

Pizarra, marcadores

12

11:00 11:45

45

Ejercicios de flujos de control

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

Co-evaluacin de ejercicios por parte


de los grupos
Puesta en comn
Anlisis de video
Puesta en comn
Recopilacin Final
Hasta Prxima Sesin
Jueves 31/03/2016

Hojas de Tema
Pizarra, Proyector

Hojas con ejercicios en


grupos

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

Abrir nuevo archivo

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

que se ejecutan secuencialmente y que podran escribirse igualmente en serie en la ventana de


comandos. Los scripts operan con datos existentes en el espacio de trabajo o con nuevos datos
creados por el propio script. Cualquier variable que se cree mediante un script permanecer en
el espacio de trabajo y podr utilizarse en clculos posteriores despus de finalizar el script.
Recomendaciones:
a) Siempre hay que comentar los programas, mediante el uso de %
b) Al inicio de los programas hay que realizar limpieza de variables, cierre de figuras y de
escritorio. Este se hace mediante el uso de los comandos:
clear all;, close all; y clc;, recuerde colocar al final el punto y coma
Ejemplo de un script:
Ejercicio 1
% Ejemplo de Programa simple de aritmtica
% Universidad Tcnica de Ambato
% Dr. Ligdamis Gutirrez E.
% Limpieza de variables y escritorio
clear all;
close all;
clc;
% Declaracin de variables
a = 5; b= 6;
% Operaciones
C = a+b; D = a b;
% Resultados
disp(El valor de C es: );
disp.(C);
disp(El valor de D es: );
disp.(D);
% FIN

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Ejercicio 2
De acuerdo a los conceptos bsicos de estadstica descriptiva, tenemos los conceptos de:
a) Media aritmtica

mean( )

b) Media Geomtrica

geomean ( )

Hay que denotar que: Media aritmtica > Media Geomtrica

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

function[x1, x2] = ecuacion(a,b,c)


% Funcin que resuelve la ecuacin de segundo grado ax^2+bx +c = 0
% Universidad Tcnica de Ambato
% Curso de Matlab
% Dr. Ligdamis A. Gutirrez E.
% Limpieza de variables y escritorio
% No utilizamos limpieza de variables, ya que creara un conflicto en la funcin
close all;
clc;
% Declaracin de la ecuacin
Y = b^2 (4*a*c);
% Soluciones
x1 = (-b+sqrt(Y)) /(2*a);
x2 = (-b-sqrt(Y))/(2*a);
% Presentar resultados
disp(x1);
disp(x2);
% FIN

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

3.1.2 Sentencia return


Por defecto, las funciones devuelven el control despus de que se ejecute la ltima de sus
sentencias. La sentencia return, incluida dentro del cdigo de una funcin, hace que se
devuelva inmediatamente el control al programa que realiz la llamada.
3.1.3 sub-funciones
Tradicionalmente MATLAB obligaba a crear un fichero *.m diferente por cada funcin. El
nombre de la funcin deba coincidir con el nombre del fichero. A partir de la versin 5.0 se
introdujeron las sub-funciones, que son funciones adicionales definidas en un mismo fichero
*.m, con nombres diferentes del nombre del fichero (y del nombre de la funcin principal) y que
las sub-funciones slo pueden ser llamadas por las funciones contenidas en ese fichero,
resultando invisibles para otras funciones externas.
Dentro de una funcin de Matlab, que es la principal, puede existir una o varias funciones a su
vez, esto lo vemos en el siguiente ejemplo:

function [media,mediana] = estadistica(u) % Funcin principal


% ESTADISTICA Calcula la media y la
% mediana utilizando funciones internas.
n = length(u);
media = mean(u,n);
mediana = median(u,n);
function a = mean(v,n) % Subfucin
% Calcula la media.
a = sum(v)/n;
function m = median(v,n) % Subfuncin
% Calcula la mediana.
w = sort(v);
if rem(n,2) == 1
m = w((n+1)/2);
else
m = (w(n/2)+w(n/2+1))/2;
end
% FIN

3.2 Entrada y manejo de datos


3.2.1 funcin input
La funcin input permite imprimir un mensaje en la lnea de comandos de MATLAB y
recuperar como valor de retorno un valor numrico o el resultado de una expresin tecleada por
el usuario. Despus de imprimir el mensaje, el programa espera que el usuario teclee el valor
numrico o la expresin. Cualquier expresin vlida de MATLAB es aceptada por este
comando.

Pgina 39 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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.

3.3 Funciones en Matlab


Existen diversas funciones redefinidas en Matlab. A travs de la ayuda y la documentacin
pueden consultarse.
3.4 Condiciones y flujos de control en Matlab
Normalmente, Matlab va realizando las instrucciones de un programa enel orden que las hemos
escrito. No obstante, hay varias formas de conseguir que este orden no se respete:
- If, junto con else y elseif, ejecuta un grupo de instrucciones dependiendo de qu cierta
expresin lgica sea cierta o no.
- While ejecuta un grupo de instrucciones un nmero indefinido de veces que depende de que
cierta expresin lgica se verifique o no.
- For ejecuta un grupo de instrucciones un nmero establecido de veces.
- Break termina la ejecucin de un for o while.
- Switch, junto con case y otherwise, ejecuta diferentes grupos de instrucciones dependiendo del
valor de alguna condicin lgica.
Pgina 40 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

- Continue pasa el control a la siguiente iteracin de un for o while, ignorando cualquier


instruccin posterior (del for o while en cuestin).
Veamos a continuacin un poco ms detallada cada una de ellas.
3.4.1 Bucle ifelse
MATLAB, al igual que la mayora de los lenguajes de programacin estructurada, tambin
incorpora la estructura IF-ELSEIF-ELSE-END. Mediante esta estructura, se pueden ejecutar
secuencias de comandos si se cumplen determinadas condiciones. La sintaxis del bucle es la
siguiente:
if condicin
comandos
end
En este caso se ejecutan los comandos si la condicin es cierta. Pero la sintaxisde este bucle
puede ser ms general.
if condicin
comandos1
else
comandos2
end
En este caso se ejecutan los comandos1 si la condicin es cierta, y se ejecutan los comandos2 si
la condicin es falsa.

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

>>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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Para 0 h 19 m, el volumen de agua se puede calcular a partir del volumen de un cilindro de


altura h, que es:
= 12.52
Para 19 h 33 m, el volumen de agua se calcula sumando el volumen del cilindro, con altura
h = 19 m, y el volumen de agua en el cono.
1
3

= 12.52 19 +
Donde : 12.5 +

19 (12.52 + 12.5 + 2 )

10.5
14

( 19), La funcin en Matlab queda de la siguiente manera:

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

x=
0

La forma general de un bucle FOR es la siguiente:


for variable = expresin
comandos
end
El bucle siempre empieza con la clusula for y termina con la clusula end, e incluye en su
interior todo un conjunto de comandos que se separan por comas. Si algn comando define una
variable, se finaliza con punto y coma para evitar repeticiones en la salida.
Ejemplo:
Realizar un script que calcule los n primeros trminos de la serie numrica siguiente:

=1

(1)
(2)

Ejecutar el script para n = 4 y n = 20


% Programa para calcular los n primeros trminos
clear all; close all; clc;
n = imput(Introduzca el nmero de trminos: );
s = 0; % Inicializa la suma a cero
for k = 1: n
s = s +(-1)^k*k/2^k
end
fprintf( El valor (suma) de la serie es: %f, s);
% FIN
Ejemplo 2
Desarrollar un script para calcular la funcin sen(x), que se aproxime utilizando la serie de
Taylor

=
=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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

% Los argumentos de entrada son: el ngulo x en grados y el nmero n de trminos de la serie


xr = x*pi/180;
y = 0;
for k = 0:n-1
y = y +(-1)^k*xr^(2*k+1)/factorial(2*k+1);
end
% FIN
3.4.3 Bucle While

MATLAB dispone de su propia versin de la sentencia WHILE definida en la sintaxis de la


mayora de los lenguajes de programacin. Esta sentencia permite ejecutar de forma repetitiva
un comando o grupo de comandos un nmero determinado de veces mientras se cumple una
condicin lgica especificada. La sintaxis general de este bucle es la siguiente:
while condicin
comandos
end
El bucle siempre empieza con la clusula while seguida de una condicin, y termina con la
clusula end, e incluye en su interior todo un conjunto de comandos que se separan por comas y
que se ejecutan mientras se cumple la condicin. Si algn comando define una variable, se
finaliza con punto y coma para evitar repeticiones en la salida.
Ejemplo:
Una secuencia en la cual una variable x con valor inicial de 1, se multiplica por dos en cada
iteracin, y el bucle se repite hasta que el valor de la variable sea menor o igual a 16
x = 1;
while x < = 16
x = 2*x;
end
3.4.4 Bucle Switch
La sentencia switchrealiza una funcin anloga a un conjunto de if...elseif concatenados. Su
forma general es la siguiente:
switchswitch_expresion
casecase_expr1,
bloque1
case{case_expr2, case_expr3, case_expr4,...}
bloque2
...
otherwise, % opcin por defecto
Pgina 45 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

CURSO BSICO DE LENGUAJE MATEMTICO MATLAB

III SESIN
Facultad de Ingeniera Civil y Mecnica

Pgina 47 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

FICHA Y HORARIO DE CLASE


Planificacin y desglose de actividades de la segunda sesin, de acuerdo a lo estipulado en la
planificacin del curso: Curso Bsico Matlab.

a) No. de Sesin: III Sesin:


Unidad: IV Grficos en Matlab.
Sub-competencia: Identifica y comprende los conceptos bsicos de los grficos en dos
y tres dimensiones

FICHA DE CLASE (Contenidos a desarrollar en la sesin)


A

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,

* Presentacin por parte


de los grupos de los
*Presentar el objetivo programas realizados de
del da
la hoja 3
*Comprender los
conceptos de los
grficos en Matlab 2D
y 3D

* 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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

d) HORARIO I SESIN

(31/03/16)
Curso Bsico Matlab.

La hora de clases es de 60 minutos: 8:00 am. a 14:00 pm.

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

Presentar objetivo da, Presentar


Horario

Proyector, Filminas,
Pizarra

Revisin puntos
principales da

8:20 8:35

15

Puesta en comn actividad trabajo


autnomo artculo

Hojas de trabajo
autnomo 2

Entrega trabajos

8:35 9:00

25

Hojas de ejercicios 3

Memoria con los


programas y Matlab

9:00 9:05

6
7

9:05- 9:35

30

Presentacin grficos en Matlab

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

Continuacin presentacin grficos en


Matlab

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

Actividad, presentacin por parte de los


grupos de los programas realizados
Puesta en comn de resultados del
trabajo en grupo

Ejercicios Grficos por parte de los


grupos
Co-evaluacin de ejercicios por parte
de los grupos
Puesta en comn
Anlisis de video
Puesta en comn
Recopilacin Final
Hasta Prxima Sesin
Viernes01/04/2016

Hojas de Tema
Pizarra,Proyector

Hojas con ejercicios en


grupos

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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.

Grfica de funciones simples:


Se pueden graficar funciones a travs del comando "ezplot"
ezplot ->Permite graficar fcilmente una funcin f(x) en el dominio (intervalo)
-2< x < 2 .
Sintaxis:

ezplot (f, xmin, xmax)

Donde: f es una variable de tipo carcter que define de la funcin


xmin y xmax : son dos variables numricas que indican el intervalo de representacin. Ojo en
los siguientes ejemplos no borrar las variables.
Ejemplos: Tenemos las siguientes funciones:

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

>>ezplot(y)
Lo que da la siguiente grfica:

Nota: Ver dock Figure, en el Panel, para incrustar la figura en el rea de trabajo

Para la variable "w", tenemos


>>ezplot (w)
Lo que resulta en la siguiente grfica:

Para la variable "h", tenemos


>>ezplot (h)
Lo que resulta en la siguiente grfica:

Pgina 52 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Grficas en Coordenadas Polares

Para dibujar coordenadas polares se utiliza el comando:


>>ezpolar (n);
Que dibuja una curva definida en coordenadas polares por= f() para variando en el
intervalo [0,2]

Recordemos que la variable y es igual a la funcin:

Entonces: Obtenemos sus coordenadas polares mediante la funcin:


>>ezpolar (y)
Lo que da la siguiente grfica

Pregunta: Ser correcto querer obtener: ezpolar (w)?


Pgina 53 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Grficas en Tres Dimensiones


ezplot3(x, y, z)
Dibuja una curva definida x = senx(t), y = cosy(t), z = z(t)
En el dominio por defecto 0 < t <2] . Este dominio al construir el comando de Matlab, se
coloca, fuera de las comillas.
Ejemplo:
ezplot3('sin(t)','cos(t)','t',[0,10*pi])
donde el domino [0, 10 ], se observa fuera de las comillas
Al obtener la grfica, nos resulta lo siguiente:

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:

Entonces: >>ezmesh (w), Nos dar la siguiente grfica

Pgina 54 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Nota: Ver Rotacin y Grabar imagen (jpg) con las herramientas del men de la imagen.

Qu imagen presenta ezmesh (y)?

La funcin con la variable "h":


Al graficarla: ezmesh (h), nos dar lo siguiente:

Pgina 55 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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)

Anlogamente con las variables y , y w, tenemos:

Pgina 56 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

>>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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

>>ezcontour(h)

>>ezcontour(y)

Pgina 58 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

>>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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

>>ezcontourf(y)

>>ezcontourf(w)

Pgina 60 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

>>ezsurfc(w)

Nota:

>>helpshading

>>helpcolormap
Para ver opciones de sombreado y colores de la forma

GRAFICAS EN DOS DIMENSIONES CON EL COMANDO "plot"


plot: Permite graficar curvas en dos dimensiones

Sintaxis: plot(y);
plot(x,y);

Grafica los elementos del vector Y, contra sus ndices


Grafica el conjunto de puntos (X,Y), donde X y Y son vectores fila

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Valores mximos y mnimos de las coordenadas a travs del comando:


axis ([x_min, x_max, y_min, y_max ])
Ejemplo: axis([-infinf -infinf]);

% lee un archivo, hasta el final de los datos.

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: graficar la siguiente funcin:


Para x en el intervalo de 0 a 10 con crecimiento en 0.2

Tenemos entonces un script con lo siguiente:


% Grafica de la funcin: sin(x).*exp(-0.4*x)
% Para x en el intervalo de 0 a 10 con crecimiento en 0.2
% Limpieza de variables y escritorio
clear all;
close all;
clc;
x = (0:0.2:10);
y = sin(x).*exp(-0.4*x);
plot(x,y,'r'); title ('Funcion: sin(x).*exp(-0.4*x)');...
xlabel('Eje x'); ylabel('Eje y'); grid;
%FIN
Pgina 63 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Lo que al ejecutarse nos da la siguiente grfica

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

27.2 27.6 28.5 30.1 29.4 27.6


27.7

28

28.6 28.9 27.8 27.5

26.8 26.9 27.4 28.9 28.3 27.2

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

T_Ambato = [ 26.8, 26.9, 27.4, 28.9, 28.3, 27.2];


% Grafico resultante
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;
% FIN

subplot
Permite graficar m x n figuras en una misma grfica
Sintaxis:
subplot (m, n, k);

Donde: m y n es un arreglo de n x m grficas y k


representa al nmero secuencial de la grfica.

En el ejemplo anterior, realizarlo utilizando subplot.


% 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];
T_Ambato = [ 26.8, 26.9, 27.4, 28.9, 28.3, 27.2];
Pgina 65 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

% 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

La grfica resultante es la siguiente:

Pgina 66 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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 grfica resultante es la siguiente:

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

ndice

Localizacin en el Grfico

North

Interior de la figura, cerca del borde superior

South

Interior de la figura, cerca del borde inferior

East

Interior de la figura, a la derecha

West

Interior de la figura, a la izquierda

NorthEast

Interior de la figura, derecha superior

NorthWest

Interior de la figura, izquierda superior

SouthEast

Interior de la figura, derecha inferior

SouthWest

Interior de la figura, izquierda inferior

NorthOutside

Fuera de la figura, cerca del borde superior

SouthOutside

Fuera de la figura, cerca del borde inferior

EastOutside

Fuera de la figura, a la derecha

WestOutside

Fuera de la figura, a la izquierda

NorthEastOutside

Fuera de la figura, derecha superior

NorthWestOutside

Fuera de la figura, izquierda superior

SouthEastOutside

Fuera de la figura, derecha inferior

SouthWestOutside

Fuera de la figura, izquierda inferior

Best

Mejor posicin sin conflicto con los datos

BestOutside

Mejor posicin fuera del grfico

Combinar barras en un mismo grfico (uso de holdon y hold off)


Conholdon, la instruccin queda en pausa para agregar los comandos hasta que se
encuentre hold off.
Set % Establece los valores o caractersticas del objeto
% Grafica de las Temperaturas Medias
% Para tres ciudades, Utilizacin 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];
Pgina 68 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

% Establecimiento de las barras


bar1 = bar(Mes,T_Quito,'b');
holdon;
% Agrega grficos en la misma figura
A=0.5; B = 0.3;
% Tamao de las barras
bar2=bar(Mes,T_Guaya, 'FaceColor', 'r', 'EdgeColor', 'r');
set(bar2,'BarWidth',A);
bar3=bar(Mes,T_Ambato, 'FaceColor', 'g', 'EdgeColor', 'g');
set(bar3,'BarWidth',B);
hold off;
% Cierra el compartir grficos
title('Temperaturas Medias I Sem 2013 Quito, Guayaquil, Ambato');
xlabel('Mes'); ylabel('Temperatura (C)');
legend('Quito','Guayaquil','Ambato');grid;
% FIN

La salida grfica de este programa es la siguiente:

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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:

Con el comando pie3, se hace la grfica en 3D

Realizar los ejercicios de la hoja de trabajo 4


Pgina 70 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

CURSO BSICO DE LENGUAJE MATEMTICO MATLAB

IV SESIN
Facultad de Ingeniera Civil y Mecnica

Pgina 71 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

FICHA Y HORARIO DE CLASE


Planificacin y desglose de actividades de la segunda sesin, de acuerdo a lo estipulado en la
planificacin del curso: Curso Bsico Matlab.

a) No. de Sesin: IV Sesin:


Unidad: IV Continuacin deGrficos en Matlab.
Sub-competencia: Identifica y comprende los conceptos bsicos de los grficos en el
lenguaje Matlab, sus usos con las animaciones y entrada de texto. Introduccin a las
GUIs

FICHA DE CLASE (Contenidos a desarrollar en la sesin)


A

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

e)

HORARIO I SESIN

(24/03/16)

La hora de clases es de 60 minutos: 8:00 am. a 14:00 pm.

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

Presentar objetivo da, Presentar


Horario

Proyector, Filminas,
Pizarra

Revisin puntos
principales da

8:20 8:35

15

Puesta en comn actividad trabajo


autnomo video

Hojas de trabajo
autnomo 3

Entrega trabajos

8:35 9:00

25

9:00 9:05

6
7

9:05- 9:35

30

Presentacin animaciones en Matlab

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

Ejercicios de animaciones y texto

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

Co-evaluacin de ejercicios por parte


de los grupos
Puesta en comn
Anlisis de video
Puesta en comn

15

Recopilacin Final
Hasta La Prxima

20

Hojas de ejercicios 3

Hojas de Tema
Pizarra,Proyector

Hojas con ejercicios en


grupos

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

% 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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

Podemos ver otro ejemplo de animacin este utilizando el comando "movie"


Ejemplo 4
% Animacin
% 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*pi:0.1:2*pi] % Rango del eje x de -2pi a 2pi, con incremente de 0.1
% Bucle para el movimiento
for j = 1: 17
y = sin(x+j*pi/8);
plot(x,y);
M(j) = getframe;
end
title('Animacin de una Ecuacin senoidal'); xlabel('Eje x'); ylabel('Eje y');
movie(M)
Pgina 79 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

%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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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)

% tiempo para que se detenga tiempo igual al de arriba

subplot(2,2,1);plot(t(i),Vy(i), '* b');xlabel('tiempo en t(s)');ylabel('Velocidad en Vy(m/s)')


axis([min(t) max(t) min(Vy) max(Vy)])
holdon
% Espera a adicionar, esto retrasa un poco la imagen para verse mejor
subplot(2,2,2);plot(t(i),y(i), 's m');xlabel('tiempo t(s)');ylabel('Posicion y (m)')
axis([min(t) max(t) min(y) max(y)])
holdon % Espera a adicionar, esto retrasa un poco la imagen para verse mejor
subplot(2,2,3); plot(x(i),y(i), 'o r');xlabel('Posicin x(m)');ylabel('Posicin y(m)')
axis([-2 2 min(y) max(y)])
subplot(2,2,4);plot3(x(i),Vy(i),y(i), '--or');xlabel('Tiempo t(s)');...
ylabel('Velocidad Vy(m/s)');zlabel('Posicin y(m)')
axis([min(t) max(t) min(Vy) max(Vy) min(y) max(y) ]);grid on
holdon % Espera a adicionar, esto retrasa un poco la imagen para verse mejor
end
% FIN

Pgina 82 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Texto dentro de las Grficas


Ahora vamos a colocar un texto de un dato tomado de una variable. Dicha variable puede ser
fija o el resultado de algn clculo. Esto se hace con los comandos "text" y "sprintf". Veamos
esto en el siguiente ejemplo:
Ejemplo 7
% Programa de Grafica de la funcin: sin(x).*exp(-0.4*x)
% Para x en el intervalo de 0 a 10 con crecimiento en 0.2
% 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;
p = 4.52; % Valor de la presin
x = (0:0.2:10);
y = sin(x).*exp(-0.4*x);
plot(x,y,'r'); title ('Funcin: sin(x).*exp(-0.4*x)');...
xlabel('Eje x'); ylabel('Eje y');
% con text y sprintf se coloca el valor de la variable, dentro del text de acuerdo a las
% coordenadas x,y, estableciendo el formato en flotante con 2 decimales
text(2.1,0.4,sprintf('presin %1.2f',p))
%FIN
Ejemplo 8
Utilizamos el comandotext,text(x,y,'texto') introduce 'texto' en el lugar especificado por las
coordenadas xe y. Si xe yson vectores, el texto se repite por cada par de elementos.
Ahora vamos a calcular la derivada de la funcin siguiente:
Graficarla y marcar el punto en donde la x tenga un valor de 3
% Programa de Grafica de la derivada de la funcin: x^3 + 5*x -1
% Marcar para x con un valor de 3
% Curso de Matlab y Simulink
% Universidad Tcnica de Ambato
% Dr. Ligdamis A. Gutirrez E.
% Marzo 2016
% Limpieza de variables y escritorio
clear all;
Pgina 83 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Continuando con la clase prctica veamos la solucin del programa men con switch
%
%
%
%
%

Programa para dibujar la superficie de X.^4 + (Y/2).^4


Utilizando un switch con varias opciones
Curso Bsico de Matlab y Simulink
Dr. Ligdamis Gutirrez E.
Universidad Tcnica de Ambato

% Limpieza de variables y escritorio


clearall;
closeall;
clc;
% Asignacin de coordenadas X y Y
x = [-1:0.1:1];
y = [-2:0.1:2];
% Transforma el dominio especfico de los vectores X y Y
% a arrays para que puedan ser evaluados en graficas 3D
[X,Y] =

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB
xlabel('x'); ylabel('y');zlabel('z');...
title('Grafica con surfc');
disp('Pulse cualquier tecla para continuar');
disp(' ');
pause;
otherwise
disp('Ningn valor');
disp(' ');
end
r = input('Desea presentar otra Grfica: s/n ','s');
if strcmp(r,'s') % strcmp compara dos string, en este caso el
tecleado con input, y la "s"
run('grafico3D.m');
% ejecuta el programa indicado
else
closeall; clc;
disp('Fin del Programa, Adios, Que tengas un Buen Da');
end
% FIN

Creacin de ejecutables en Matlab (.Exe)


Ahora veremos cmo podemos realizar la creacin de archivos ejecutables en Matlab. Para ello
debemos de enlazar el compilador de C, C++ al Matlab, esto se hace con la siguiente
instruccin, mbuild de la siguiente manera:

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

de compilacin de Matlab (MCR - MatLab compiler runtime) en la carpeta donde se


guarda el ejecutable.
Habitualmente, MCR se encuentra en
C:\archivos de programa\Matlab\toolboxcompilerdeploywin32.
La ruta puede variar dependiendo de la versin de Matlab que se utilice.
5- Ejecutar
En un computador con Matlab no habr dificultades para ejecutar el
fichero nombredelprograma.exe. Cuando se trata de un computador que no tiene
Matlab instalado, es necesario instalar el MCR antes de intentar ejecutar el programa.
Esta instalacin solo es necesario realizarla una vez.
El proceso que enva Matlab es el siguiente:
>>mbuild -setup
Please choose your compiler for building standalone MATLAB applications:
Would you like mbuild to locate installed compilers [y]/n? y
Select a compiler:
[1] Lcc C version 2.4 in C:\MATLAB7\sys\lcc
[0] None
Compiler: 1
Please verify your choices:
Compiler: Lcc C 2.4
Location: C:\MATLAB7\sys\lcc
Are these correct?([y]/n): y
Try to update options file: C:\Users\Investigacion05\Application
Data\MathWorks\MATLAB\R14\compopts.bat
From template:

C:\MATLAB7\BIN\WIN32\mbuildopts\lcccompp.bat

Done . . .
--> "C:\MATLAB7\bin\win32\mwregsvr C:\MATLAB7\bin\win32\mwcomutil.dll"

DllRegisterServer in C:\MATLAB7\bin\win32\mwcomutil.dll succeeded


--> "C:\MATLAB7\bin\win32\mwregsvr C:\MATLAB7\bin\win32\mwcommgr.dll"
DllRegisterServer in C:\MATLAB7\bin\win32\mwcommgr.dll succeeded
Pgina 87 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Al final, como se puede observar, dice que el proceso ha terminado exitosamente.


CREACIN DE GUIs en Matlab
Las GUIs son un conjunto de funciones que de forma grfica presentan una interfaz amigable
para poder realizar acciones con nuestros programas. Las interfaces grficas de usuario o GUIs,
se crean en Matlab de una forma muy sencilla. Lo primero es dar clic a nuevo y buscar en el
men desplegable Graphical User Interface, al hacer esto aparecer una pantalla como la
siguiente:

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Simplemente al guardar la GUI, se crea automticamente el cdigo del archivo m asociado a


ella, la GUI posee el mismo nombre, solo que con la extensin fig, o figura. Por lo tanto,
tendremos dos archivos, uno con el cdigo y el otro con la figura asociada, y deben de existir
los dos, para ejecutar las GUIs. El cdigo que se crea para esta GUI, es el siguiente:
function varargout = pendulo1(varargin)
% Archivo que realiza el clculo de la gravedad en el sitio
% De un Pndulo
% a partir de entradas de la longitud de la cuerda
% y el perodo en segundos
% Dr. Ligdamis A. Gutirrez E.
% Universidad Tcnica de Ambato
% Curso de Matlab
% PENDULO1 M-file for pendulo1.fig
%
PENDULO1, by itself, creates a new PENDULO1 or raises the
existing
%
singleton*.
%
%
H = PENDULO1 returns the handle to a new PENDULO1 or the handle
to

Pgina 91 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB
%
the existing singleton*.
%
%
PENDULO1('CALLBACK',hObject,eventData,handles,...) calls the
local
%
function named CALLBACK in PENDULO1.M with the given input
arguments.
%
%
PENDULO1('Property','Value',...) creates a new PENDULO1 or
raises the
%
existing singleton*. Starting from the left, property value
pairs are
%
applied to the GUI before pendulo1_OpeningFunction gets called.
An
%
unrecognized property name or invalid value makes property
application
%
stop. All inputs are passed to pendulo1_OpeningFcn via
varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows
only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Copyright 2002-2003 The MathWorks, Inc.
% Edit the above text to modify the response to help pendulo1
% Last Modified by GUIDE v2.5 31-Mar-2016 16:07:30
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @pendulo1_OpeningFcn, ...
'gui_OutputFcn', @pendulo1_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% --- Executes just before pendulo1 is made visible.


function pendulo1_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject
handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% varargin
command line arguments to pendulo1 (see VARARGIN)

Pgina 92 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB
% Choose default command line output for pendulo1
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
%
%
%
%

UIWAIT makes pendulo1 wait for user response (see UIRESUME)


uiwait(handles.figure1);
This sets up the initial plot - only do when we are invisible
so window can get raised using analisis.

% Presentacin de la imagen en el axes2


if strcmp(get(hObject,'Visible'),'off')
logo = 'periodo';
axes(handles.axes2);
handles.imagen=imread('C:\MATLAB7\work\periodo','bmp');
imagesc(handles.imagen);
axisoff;
end

% --- 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

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject
handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')
);
end
function edit2_Callback(hObject, eventdata, handles)

Pgina 93 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB
% hObject
% eventdata
% handles

handle to edit2 (see GCBO)


reserved - to be defined in a future version of MATLAB
structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of edit2 as text


%
str2double(get(hObject,'String')) returns contents of edit2
as a double

% --- Executes during object creation, after setting all properties.


function edit2_CreateFcn(hObject, eventdata, handles)
% hObject
handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')
);
end

% --- Executes on button press in pushbutton1.


function pushbutton1_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
% Los valores son tomados mediante get de los objetos tipo string
% edit6 y edit7, convirtiendo mediante str2doble de tipo string a
doble
a = str2double(get(handles.edit6, 'string'));
% longitud de la
cuerda
b = str2double(get(handles.edit7, 'string'));
formatshorte;

% Perodo en segundos

% formato de los numeros

g = a/(b/(2*pi))^2;

% clculo de la gravedad en el sitio

set(handles.text4, 'String', num2str(g))


function edit7_Callback(hObject, eventdata, handles)
% hObject
handle to edit7 (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 edit7 as text
%
str2double(get(hObject,'String')) returns contents of edit7
as a double

% --- Executes during object creation, after setting all properties.

Pgina 94 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB
function edit7_CreateFcn(hObject, eventdata, handles)
% hObject
handle to edit7 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')
);
end

function edit6_Callback(hObject, eventdata, handles)


% hObject
handle to edit6 (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 edit6 as text
%
str2double(get(hObject,'String')) returns contents of edit6
as a double

% --- Executes during object creation, after setting all properties.


function edit6_CreateFcn(hObject, eventdata, handles)
% hObject
handle to edit6 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
empty - handles not created until after all CreateFcns
called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')
);
end

% --- Executes on button press in pushbutton2.


function pushbutton2_Callback(hObject, eventdata, handles)
% hObject
handle to pushbutton2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structurewith handles and user data (see GUIDATA)
clc;

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

CURSO BSICO DE LENGUAJE MATEMTICO MATLAB

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Introduccin a Simulink y a modelacin de sistemas con VRBuild

FICHA Y HORARIO DE CLASE


Pgina 97 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Planificacin y desglose de actividades de la segunda sesin, de acuerdo a lo estipulado en la


planificacin del curso: Curso Bsico Matlab.

a) No. de Sesin: V Sesin:


Unidad: VAnexos Simulink y VrBuild.
Sub-competencia: Identifica y comprende los conceptos bsicos de la simulacin con
Simulink y el diseo de modelos con VrBuild

FICHA DE CLASE (Contenidos a desarrollar en la sesin)


A

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.

* Presentacin por parte *Mtodo expositivo


de los grupos de las
de conferencia
*Presentar el objetivo GUIs desarrolladas
tradicional/
del da
Pizarra, Textos
Uso de proyector
*Comprender los
* ejercicios de
como medio
conceptos de la
programas conteniendo: audiovisual.
simulacin mediante modelos con Simulink y
modelos en Simulink Vrbuild
*Mtodo
y Vrbuild
demostrativo
*Anlisis por grupos de
prctico de trabajo
*Recopilar
artculos en Simulink
en grupo en las
informacin sobre
clases prcticas
evaluacin docente
del curso

Evaluacin

Observaciones

*Bienvenida,

*Analizas artculos
referentes al trabajo
con Simulink

*Puesta en comn 1. Presentar proceso


sobre el resultado general del curso
del diseo de GUIs
2. Presentar
*Ejercicios de
conceptos bsicos de
programacin.
Simulink.
Sobre Simulink
3. Presentar los
*Eleccin de
elementos de bloques
artculos de
en Simulink
Simulink y anlisis.
Resumen del
4. Preparar hojas para
contenido
la evaluacin docente.
*Discusin y
Puesta en comn
final

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

f)

HORARIO I SESIN

(01/04/16)

La hora de clases es de 60 minutos: 8:00 am. a 14:00 pm.

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

Presentar objetivo da, Presentar


Horario

Proyector, Filminas,
Pizarra

Revisin puntos
principales da

8:20 8:55

35

Puesta en comn actividad trabajo


GUIs

Hojas de trabajo 4

Entrega trabajos
Memoria con los
programas y Matlab

8:55 9:20

25

Actividad evaluacin docente

Hojas de evaluacin
docente

9:20 9:25

Puesta en comn de resultados


evaluacin docente (parecer del gpo)

9:25- 10:00

30

Presentacin primera parte, Simulink

10:00 10:20

20

DESCANSO

10

10:20 10:55

35

Continuacin presentacin Simulink,


VrBuild

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

EjerciciosGrficos por parte de los


grupos de VrBuild
Eleccin y anlisis de artculos de
Simulink por parte de los grupos
Puesta en comn por bloques de dos
grupos
Puesta en comn

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

Pgina 100 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

Pgina 101 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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.

Pgina 102 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

4) Terminada la accin de guardar, ejecutamos el modelo, desde la ventana de trabajo,


dando clic al cono con la flecha verde de run, o en el men en la parte superior,
simulation, o Crtl + T. La salida de esto, es que vamos a generar una onda senoidal
y la vamos a representar en el bloque scope.

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.

Pgina 103 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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.

Ahora, vamos a introducir un retardo a la seal, para ello en la librera Continuos,


seleccionamos el bloque Variable Time Delay, y lo colocamos en el rea de trabajo de nuestro
modelo. Tenemos que recomponer las conexiones, para ello, seleccionamos con el puntero,
donde finaliza o inicia una conexin, el puntero cambia a un crculo, y la lnea se hace punteada
y de color rojo, con ello ya podemos llevar la conexin a donde deseamos. Entonces, vamos a
conectar la salida de la onda senoidal y la ganancia a las dos entradas del retardo, y la salida de
este al scope, hacemos una conexin puente entre la onda senoidal hacia la entrada de la
ganacia. Tambin, podemos modificar los ttulos de nuestros bloques, dando clic al nombre y
cambindolo para que sea acorde a una lectura ms fcil. Recordemos ir guardando los cambios
en el modelo. As la salida de esto queda reflejada en la siguiente imagen.

Pgina 104 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Se pueden mezclar seales en el osciloscopio, esto es aumentar el nmero de entradas y se hace


en el men de la ventana del osciloscopio (scope), seleccionando el icono de parmetros, se
designa cuantos axes se desean, por defecto el nmero es 1, si se coloca 2, el bloque cambia
a dos entradas. As por ejemplo hacemos dos entradas con el bloque Signal Wave, y se
representan en el osciloscopio. Otra forma es colocando un bloque mezclador mux, con dos
entradas y una salida. Las seales la primera la colocamos con una amplitud de 1, y la segunda
con una amplitud de 3.

Pgina 105 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Vemos el resultado de la siguiente manera.

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

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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.

Ejemplo 3: teclear en la ventana de comandos: >>sldemo_househeat y analizar el diagrama (En


la versin 7, hay que teclear "thermo").

Pgina 107 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

El esquema anterior, representa un sistema de calefaccin para una vivienda. Se supone


conocida la variacin de la temperatura en el exterior de la casa y en funcin de ello se puede
observar en qu instantes se conecta y se desconecta la calefaccin, cules son las variaciones
de la temperatura en el interior de la casa y cul es el coste de calefaccin. Este ejemplo
procede de una demo de Simulink.

Ejemplo 4: Comparacin Tcnicas de anlisis espectral

II) VrBuild (vredit)


Pgina 108 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

En esta actividad se disear un Mundo Virtual en Cada libre. La Actividad se


compondr de Tres Pasos a Seguir.
I)
II)
III)

Creacin del modelo con las especificaciones tcnicas en Simulink


Creacin del Mundo Virtual mediante Vrbuild (vredit en versiones avanzadas)
Integracin del modelo virtual con Simulink y prueba de simulacin de
movimientos.

PARTE I. CREACIN DEL MODELO SIMULINK


a) Abrir Simulink y Crear un nuevo Modelo. Darle el nombre de Mundo1
b) En los bloques comunes, seleccionar el bloque de una Constante y arrstralo al
modelo.

CONSTANTE
Valor 9.8

Pgina 109 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

f) El segundo Integrador darle el nombre de Posicion y un valor inicial de 10. Unirlo a


Velocidad.

Integrador Posicin
Despus de: Velocidad

Pgina 110 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

g) En la librera UserDefinedFunctions, seleccione el Bloque Matlab Function, para


poder colocar funciones de Matlab, y colquelo despus del bloque Posicin
h) Dar doble clic al bloque de la funcin, con lo que se abrir el editor de Matlab, colocar
ah el siguiente cdigo, para establecer la dinmica del movimiento del mundo:
function [f, a, b] = fcn(y)
% Codigo de la funcin: variables
% f = fuerza
% a = aceleracin
if y < 1e-4;
y = 1e-4;
end
if y
f
a
b
else
f
a
b
end

<
=
=
=

1.5
500*(1.5-y);
sqrt(1.5^3/y);
y;

= 0;
= 1.5;
= 1.5;

Integrador
Despus de: Posicin

Una vez que se integra el cdigo el bloque de la


funcin cambia y presenta las tres salidas [f, a,
b]
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

Pgina 111 de 127

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Al guardar este cdigo se salvar con el nombre de Mundo1.mdl


i) En la librera de bloques comunes, seleccionar y aadir al proyecto un sumador.
Dar doble clic al sumador para modificar que sume y reste entradas.
j) La parte negativa se conecta con el Bloque gravedad, la salida con el bloque
velocidad y la parte positiva viene de la funcin de la salida de fuerza f

Conexin del Sumador

Se selecciona el Sumador y se cambian


los parmetros para entradas positivas
y negativas

k) En la librera Sinks, seleccionar un bloque Scope para obtener una grfica y


colocarlo unido a la salida del bloque posicin, en el camino de posicin y la
Pgina 112 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

funcin.

Conexin del Scope para Grfica

l)

Ahora ir a la librera Simulink 3D Animation y seleccionar el bloque VR Sink,


para incluir un modelo de Vrbuid. Ah se estara cargando o creando un nuevo modelo
virtual (esto se har en la segunda parte a travs de Vrbuild, pero incluso podra
hacerse en este momento mediante Simulink.

Integrar un Mundo Virtual al modelo


Aun no se ha conectado

m) En la misma librera, seleccionar un expandidor de seal VR y aadirlo al modelo. Dar


Pgina 113 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

doble clic y modificar los parmetros: Establecer el ancho de salida a 3, y dejar los
ndices en 2.

Insertar un Expandidor de Seal y modificar sus


parmetros a 3 de ancho de salida y 2 ndices
n) Ir a la librera CommonlyUsed Blocks (bloques comnmente utilizados) y
seleccionar Bus Creator, aadirlo al modelo, dar doble clic y establecer el
nmero de seales de entrada en 3.

o) Ahora, realizar las conexiones entre la entrada de VR SignalExpander y antes de la


entrada y del bloque de funcin de Matlab, seguidamente despus de que se hizo la
conexin al Scope.
Pgina 114 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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

Pgina 115 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

2) Insertar una Transformada y Nombrarla como Esfera

3) En la seccin Children insertar un crculo y nombrarlo como Tierra

4) Dar los siguientes parmetros:


Tranlation[ 0 , 10, 0]
Radio [2.5]
Nota: Si desaparece de la pantalla no se preocupe, ya que le hemos dado una
altura de 10
5) Ahora nos vamos al principal, a Mundo e insertamos un ViewPoint, y en la seccin
de Set_bind (Jump) se da doble clic y se establece el parmetro a True y en
descripcin nombrarlo como My_View
Pgina 116 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

6) Seleccionar el parmetro Position y establecer Y = 10 y Z = 40. Con esto ya


podemos visualizar la esfera en nuestra pantalla Main

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

Pgina 117 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

8) Nos colocamos a nivel de Esfera y damos clic a una nueva transformada que
llamaremos Piso

Pgina 118 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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.

Pgina 119 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

11) En el principal Mundo.WRL, vamos a aadir un Spot Light y se establece en el


parmetro Location, el valor de Y = 30
12) Ahora vamos a construir el fondo. En ese mismo principal, insertar un
Background. Con esto hemos finalizado el modelo virtual, nos aseguramos de
guardar nuestro proyecto.

Pgina 120 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Pgina 121 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

PARTE III. CREACIN DEL MODELO VIRTUAL


1) Vamos al modelo de Simulink y damos doble clic al bloque VR Sink que
hemos creado en l.
2) Damos doble clic al VR Sink y se abrir una pantalla. Damos clic a Browse para
localizar el modelo virtual que hemos creado y lo seleccionamos. Damos OK, y con
esto estar cargado el modelo. Le damos doble clic nuevamente a VR Sink y se nos
deber presentar la pantalla virtual de nuestro modelo Mundo
3) Ahora podemos desde este modelo cambiar los parmetros. Para ello vamos a
seleccionar en el Men Virtual, seleccionamos Simulations y luego Block
Parameters. Esto nos abrir de nuevo la ventana de parmetros de VR Sink
4) Ahora seleccionamos en dicha ventana la Transformada Esfera y marcamos la
casilla Traslation. Y la casilla Escale. Esto para que pueda moverse la esfera. Y
al marcar escale nos estar brindando una entrada para el Bus. Adems establecer el
tiempo en 0.009 para que no sea tan rpido el movimiento de la esfera.
Ahora procederemos a establecer la conexin fsica del bloque con el resto de los bloques
de Simulink.
a) Conectamos la entrada del Bloque VR Sink con la salida del bloque VR
SignalExpanmder
Por ltimo para que no de un error de parmetros vamos a cambiar el parmetro por
defecto. En el modelo de Simulink, nos vamos al men, a la Opcin,
Simulation/ConfigurationPArameters/ La opcin SolverOptions se encuentra por defecto en
Pgina 122 de 127
Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

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.

Pgina 123 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Pgina 124 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Pgina 125 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Pgina 126 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

UNIVERSIDAD TCNICA DE AMBATO


CURSO DE LENGUAJE MATEMTICO MATLAB

Ejemplo 5: En la ventana de comandos teclear: >> vrmemb1 (y analizar el modelo)


Bien, esto es todo, el enriquecimiento lo da la prctica y la bsqueda constante de superacin.
Hay una abundante bibliografa suministrada que se puede consultar, adems de lo que se puede
encontrar en la red y sitios especializados en Matlab.
Atte.
Ph.D. Ligdamis A. Gutirrez
Geofsico, Sismologa
Algunos ejemplos a enlace de reportes y videos relacionados con trabajos de Matlab:
http://www.igepn.edu.ec/informes-volcanicos/islas-galapagos/gal-mensuales/gal-m-2015/12725-informemensual-galapagos-marzo-2015/file
http://www.igepn.edu.ec/informes-volcanicos/cotopaxi/coto-mensuales/coto-m-2015/12781-informemensual-cotopaxi-marzo-2015/file
http://www.igepn.edu.ec/cotopaxi/informes-cotopaxi/coto-semanales/coto-s-2015/542-informe-semanalcotopaxi-26-31012015/file
http://www.igepn.edu.ec/informes-volcanicos/antisana/anti-mensuales/12775-informe-mensual-antisanamarzo-2015/file
http://www.igepn.edu.ec/informes-volcanicos/antisana/anti-mensuales/462-informe-mensual-antisanadiciembre-2014/file

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.-

Pgina 127 de 127


Curso Matlab bsico, marzo 2016 Dr. Ligdamis A. Gutirrez Espinoza- Docente - Investigador

Vous aimerez peut-être aussi