You are on page 1of 73

TEMARIO

1. Que es Matlab y su entorno 1
1.1. Objetivos y uso del Matlab 1
1.2. Ejemplos de aplicación 1
1.3. Elementos del entorno gráfico de Matlab 2
2. Operaciones y Funciones Básicas. 3
2.1. Manejo de sesiones de trabajo 3
2.2. Variables: Tipos y asignación de valores 4
2.3. Operaciones básicas del álgebra matricial 7
2.4. Funciones de Matlab 10
2.5. Ejemplos 13
2.6. Problemas 17
3. Programación y Archivos m 24
3.1. El editor de archivos m 24
3.2. Manejo de archivos m y elementos básicos de programación 26
3.3. Estructuras de control 32
3.4. Aplicaciones 43
4. Graficación 50
4.1. Elementos de los gráficos de Matlab 50
4.2. Generación de gráficos 2D 50
4.3. Edición de atributos de los gráficos 56
4.4. Grabar y exportar 62
4.5. Introducción a gráficos 3D 62
5. La Interfaz Gráfica de Usuario (GUI) 66
5.1. El editor de Interfases Gráficas de Usuarios (GUI) 66
5.2. Objetos y propiedades disponibles para las GUI 66
5.3. Ejemplos de GUI 68
5.4. Planeación y desarrollo de GUI 72


- 1 -

1. Que es Matlab y su entorno.

1.1 Objetivos y uso del Matlab.
MATLAB es el nombre abreviado de “MATrix LABoratory”.
MATLAB es un programa para realizar cálculos numéricos con vectores y matrices.
Como caso particular puede también trabajar con números escalares −tanto reales
como complejos−, con cadenas de caracteres y con otras estructuras de información
más complejas. Una de las capacidades más atractivas es la de realizar una amplia
variedad de gráficos en dos y tres dimensiones. MATLAB tiene también un lenguaje de
programación propio.

MATLAB es un gran programa de cálculo técnico y científico. Para ciertas operaciones
es muy rápido, cuando puede ejecutar sus funciones en código nativo con los tamaños
más adecuados para aprovechar sus capacidades de vectorización. En otras
aplicaciones resulta bastante más lento que el código equivalente desarrollado en
C/C++ o Fortran.

En cualquier caso, el lenguaje de programación de MATLAB siempre es una magnífica
herramienta de alto nivel para desarrollar aplicaciones técnicas, fácil de utilizar y que,
como ya se ha dicho, aumenta significativamente la productividad de los programadores
respecto a otros entornos de desarrollo.

MATLAB dispone de un código básico y de varias librerías especializadas (toolboxes).
En estos apuntes se hará referencia exclusiva al código básico.

MATLAB se puede arrancar como cualquier otra aplicación de Windows, clicando dos
veces en el icono correspondiente en el escritorio o por medio del menú Inicio. Al
arrancar MATLAB se abre una ventana. Ésta es la vista que se obtiene eligiendo la
opción Desktop/Desktop Layout/Default, en el menú View. Como esta configuración
puede ser cambiada fácilmente por el usuario, es posible que en muchos casos
concretos lo que aparezca sea muy diferente. De cualquier forma, en cualquier
momento se puede visualizar la vista estándar eligiendo la opción indicada
anteriormente.


1.2 Ejemplos de aplicación.
Matlab es un sistema general de software para matemáticas y otras aplicaciones
científicas. Es utilizado por investigadores, ingenieros y analistas, así como en el
entorno universitario. Las aplicaciones de Matlab comprenden la mayoría de las áreas
de la ciencia, tecnología y negocios en donde se aplican métodos cuantitativos.

Por ejemplo se utiliza en el Análisis Matemático, Algebra Lineal y Geometría; en
estadística y sus aplicaciones en la industria incluyendo estadística descriptiva,
estadística matemática y técnicas de ajuste de modelos, análisis de la varianza, control
de calidad y diseño de experimentos. Así como en los sistemas de control y sus
aplicaciones en la ingeniería.


- 2 -

1.3 Elementos del entorno gráfico de Matlab.
El entorno de trabajo de MATLAB es muy gráfico e intuitivo, similar al de otras
aplicaciones profesionales de Windows.
Las componentes más importantes del entorno de trabajo de MATLAB 7.0 son las
siguientes:

El Escritorio de Matlab (Matlab Desktop), que es la ventana o contenedor de máximo
nivel en la que se pueden situar (to dock) las demás componentes.

Las ventanas de Matlab:

Command
Window
(Ventana de
Comandos):
Es la ventana
principal, se
utiliza para
introducir
variables y
ejecutar
programas.

Figure
Windows
(Ventana de
Gráficos): para
visualizar
gráficos, esta
ventana se abre automáticamente cuando un comando matlab ejecuta la visualización
del grafico.

Editor Window (ventana del Editor): Se abre mediante las opciones del menú File, y se
usa para escribir y editar programas, llamados ficheros de Script y funciones matlab.

Help Window (Ventana de Ayuda): proporciona ayuda e información sobre Matlab.

Launch Pad Window (Ventana de Plataforma): Da acceso a herramientas, demos y
documentación.

Command History Window (Ventana del Histórico de Comandos): Almacena y
visualiza los comandos que se introducen en la Ventana de Comandos.

Workspace Window (Ventana del Espacio de Trabajo): proporciona información sobre
las variables utilizadas.

- 3 -

Current Directory Window (Ventana del Directorio de Trabajo Actual): Muestra los
ficheros que hay en el directorio de trabajo actual.

2. Operaciones y Funciones básicas.

2.1 Manejo de sesiones de trabajo.
Hay dos modos de trabajo con MATLAB:

Trabajo interactivo (Command Window), donde el usuario realiza una consulta
(escribe una operación) y el programa la ejecuta.

Trabajo programado (M-files), donde el usuario genera uno o varios ficheros con
conjuntos de instrucciones MATLAB, que se pueden ejecutar repetidas veces (con
distintos datos) desde el modo interactivo. De esta forma, el usuario puede incrementar
las funciones disponibles en MATLAB, añadiendo las suyas propias.

En los siguientes ejercicios se trabajara de forma interactiva en la ventana Command
Window.

Por defecto, la
carpeta de trabajo
es la carpeta
MATLAB, aunque
ésta se puede
cambiar.











Símbolos de operaciones aritméticas
Operación Símbolo Ejemplo
Suma + 10+7
Resta - 10-7
Multiplicación * 10*7
División Derecha / 10/7
División Izquierda \ 10\7 = 7/10
Exponenciación ^ 10^7

Prioridad de operaciones:
o Primero: Paréntesis. Para paréntesis anidados, el más interno es el que primero
se ejecuta.
- 4 -

o Segundo: Exponenciación.
o Tercero: Multiplicación y división (igual prioridad)
o Cuarto; Suma y resta.

2.2 Variables: Tipos y asignación de valores.

El símbolo >> es el prompt (o indicador) de MATLAB e indica que está listo para aceptar
ordenes.

Para ejecutar una orden
basta pulsar la tecla ENTER.
El nombre que se asigna por
defecto a la salida es ans
(abreviatura de answer).

Las asignaciones en
MATLAB se realizan como
en cualquier lenguaje de
programación, pero no
requieren ningún tipo de
declaración de variables (en
una primera aproximación).

Las operaciones se realizan
siempre en aritmética de
coma flotante de doble
precisión.

El efecto de escribir un
punto y coma (;) al final de
una instrucción es evitar que
se muestre por pantalla su
resultado, aunque sí se
ejecuta.

Si se utiliza el símbolo %, a
partir de allí se considera
que la línea es un
comentario.

Para poder realizar
operaciones con números
complejos, MATLAB tiene
reservada la letra i para la
unidad imaginaria. Esto es
una preasignación de la
variable i, que no está bloqueada de ningún modo.
- 5 -

MATLAB distingue entre mayúsculas y minúsculas, razón por la cual la variable a y la
variable A son distintas. El nombre de las variables sigue las reglas habituales de un
lenguaje de programación: debe comenzar por una letra, aunque puede contener
números; no debe contener espacios en blanco ni algún tipo de símbolo reservado
(coma, punto y coma, dos puntos, guión,...).

Conceptos Básicos

La orden clc limpia la pantalla de comandos.

La orden clear elimina todas las variables no permanentes. Es posible borrar
únicamente algunas de las variables del espacio de trabajo con la orden
• clear nombre_variable

Y si hay duda sobre alguna función de MATLAB, con la orden
• help nombre_funcion
se puede consultar cualquier función del programa. Además hay un menú de ayuda
más detallado en la parte superior derecha de la barra de menús.

• Se interrumpe una ejecución con Ctrl + C.

Las teclas y permiten recuperar órdenes ejecutadas anteriormente. Tecleando
primero un grupo de caracteres y empleando las flechas se puede recuperar un
histórico de órdenes ejecutadas anteriormente que comienzan por esos caracteres.

Si se quiere guardar todo lo hecho, la orden
• diary nombre_fichero.txt

Permite grabar en un fichero de texto la sesión de trabajo. Con diary off y diary on
desactivamos y activamos la grabación en el fichero.

• who indica qué variables se están utilizando.
• whos da una información más amplia sobre el tamaño y tipo de variable.


Algunas variables especiales:

• pi es el número π.

• eps es el ε máquina, es decir, el número positivo más pequeño tal que 1 + ε ≠ 1 en
la unidad de coma flotante del ordenador.
>> eps
ans =
2.2204e-016

• inf número infinito
• NaN (not–a–number) es una magnitud no numérica y se obtiene, por ejemplo, como
resultado de indeterminaciones matemáticas del tipo (0/0) ó (∞-∞):
- 6 -


• realmin y realmax son los números reales positivos, más pequeño y más grande
respectivamente, que se pueden utilizar.


MATLAB no tiene aritmética entera incorporada. Las operaciones con enteros son
realizadas exactamente mientras ocurran dentro de la precisión máquina (hasta unas
dieciseis cifras). Aún así, MATLAB reconoce en cierto modo que se trata de números
enteros y devuelve los resultados como si estuviera realizando aritmética entera.


En general MATLAB trabaja en aritmética de
coma flotante de doble precisión. El usuario
elige el formato de salida. Algunos formatos:

format short es el formato por defecto; punto
fijo y cuatro dígitos decimales

format short e notación científica con cuatro
dígitos decimales

format long punto fijo y catorce dígitos
decimales

format long e notación científica con quince
dígitos decimales

format rat aproximaciones al número racional
más cercano.



















- 7 -

2.3 Operaciones básicas del álgebra matricial.
Por defecto, todas las variables en MATLAB se tratan como arrays con dos índices,
esto es, como matrices. No obstante, es más simple comenzar aprendiendo a manipular
vectores, es decir, arrays numerados con un único índice.

MATLAB
distingue entre
vectores fila y
columna. Esto
resulta poco
natural si se
entienden los
vectores como
algo distinto de
las matrices, pero
es conveniente
acostumbrarse
pronto a este
detalle, puesto
que es parte
integrante de la
filosofía matricial
de MATLAB.
















- 8 -

La
matrices
se definen
entre
corchetes
escribién-
dolas por
filas y se
utiliza el
punto y
coma para
separar
una fila de
otra.

También
se pueden
separar los
elementos
de las filas
con
comas.

Cada
elemento
de una
matriz se
reconoce
por dos
índices.

















- 9 -

Listas implícitas
Las listas implícitas son listas de números en las que se especifica el primer y último
elementos y el incremento entre cada elemento de la lista. Su empleo es muy común en
MATLAB, tanto para desarrollo de las capacidades gráficas como en cualquier nivel de
programación. El resultado es siempre un vector fila.



Otra forma de generar listas de número equidistantes es utilizando la función linspace
en la cual hay que especificar como argumentos el primer elemento, el último elemento
y el número total de elementos en la lista.
- 10 -


2.4 Funciones de matlab

Funciones matemáticas elementales.

Funciones
trigonomé-
tricas.















- 11 -




En el caso de vectores o
matrices, estas funciones
actúan sobre cada uno de los
elementos.

En el caso de matrices
cuadradas exp(A) y sin(A) no
son las funciones analíticas
exponencial y seno ya que
estás funciones de MATLAB
actúan elemento a elemento.
Por la misma razón
sqrt(A)*sqrt(A) no es A.








Funciones de redondeo.



- 12 -


Vectorización de
operaciones
aritméticas
El producto es, por
defecto, la operación
de producto de
matrices. De la misma
manera, las potencias
de una matriz son los
productos repetidos de
una matriz por sí
misma. El símbolo de
división tiene un
significado más
complejo, relacionado
con el producto por la
inversa del
denominador.

Para realizar productos
y divisiones elemento a
elemento (operaciones
vectorizadas), hay que
emplear los
símbolos “.*” y “./” ,
mientras que .^2
(o expresiones
parecidas con otros
exponentes) sirve para
elevar cada
componente de una
matriz o vector al
exponente indicado.














- 13 -




2.5 Ejemplos

1. Identidad trigonométrica
Sea la siguiente identidad trigonométrica: cos
2
x
2
=
tanx+scn x
2tanx


Verifique que dicha identidad es correcta calculando ambos miembros de la ecuación,
sustituyendo el valor de x por x =
n
5






2. Transferencia de calor
Un objeto con una temperatura inicial T
0
se introduce en el instante t=0 dentro de una
cámara que tiene una temperatura constante T
s
. Entonces, el objeto experimenta un
cambio de temperatura que se corresponde con la ecuación: I = I
s
+(I
0
-I
S
)c
-kt


Donde T es la temperatura del objeto en el instante t, y k es una constante.

Una lata de refresco, con una temperatura de 120°F, se introduce en un refrigerador
que tiene en su interior una temperatura de 38°F. Calcular, redondeando el resultado al
grado más próximo, la temperatura de la lata después de 3 horas. Considerar k=0.45.



- 14 -

3. Creación de una matriz
Utilizando los comandos ones y zeros, crear una matriz de 4 x 5 en la cual las primeras
dos filas sean ceros y las dos siguientes sean unos.






4. Creación de una matriz
Crear una matriz de 6 x 6 en la cual las dos filas centrales, junto con las dos columnas
centrales, sean unos, siendo el resto de elementos cero.



- 15 -

5. Manipulación de matrices
Sean dos matrices, una A de 5 x 6 y otra B de 3 x 5. Y un vector v de longitud 9

A =
l
l
l
l
l
2 S 8 11 14 17
S 6 9 12 1S 18
4 7 1u 1S 16 19
S 8 11 14 17 2u
6 9 12 1S 18 21
1
1
1
1
1
B = _
S 1u 1S 2u 2S Su
Su SS 4u 4S Su SS
SS 6u 6S 7u 7S 8u
_

: = |
99 98 97 96 9S 94 9S 92 91
]

Crear las tres matrices
Escribir un solo comando que reemplace:
a) Las cuatro últimas columnas de las filas 1 y la 3 de A por las cuatro primeras
columnas de las primeras dos filas de la matriz B
b) Las cuatro últimas columnas de la cuarta fila de A por los elementos 5 a 8 de v
c) Las cuatro últimas columnas de la quinta fila de A por las columnas 3 a 5 de la
tercera fila de B


A([1 3 4 5],3:6) = Matriz de 4x4 compuesta por las columnas 3 a 6 de las filas 1, 3, 4 y 5

[B([1 2],1:4);v(5:8);B(3,2:5)] = Matriz de 4x4 las primeras dos filas son las columnas 1 a
4 de las filas 1 y 2 de la matriz B. La tercera fila son los elementos 5 a 8 del vector v. la
fila cuarta son las columnas 2 a 5 de la fila 3 de la matriz B
- 16 -

6. Resolución de tres ecuaciones lineales
Resolver el siguiente sistema de ecuaciones lineales. 4x -2y +6z = 8
2x +8y +2z = 4
6x +1uy +Sz = u
El sistema anterior se puede representar de forma matricial AX=B
_
4 -2 6
2 8 2
6 1u S
_ _
x
y
z
_ = _
8
4
u
_






7. Experimento de fricción (procesamiento de arrays elemento a elemento)
El coeficiente de fricción µ se puede calcular experimentalmente midiendo la fuerza F
requerida para mover una masa m. a partir de estos parámetros, el coeficiente de
fricción se puede calcular de la forma: p =
P
mg
(g = 9.81 m ⁄ s
2
)
En la tabla siguiente se presentan los resultados de seis experimentos en los cuales se
midió F. Determinar el coeficiente de fricción en cada experimento, así como el valor
medio de todos los experimentos realizados.
Experimento 1 2 3 4 5 6
Masa m (kg) 2 4 5 10 20 50
Fuerza F (N) 12.5 23.5 30 61 118 294




- 17 -

2.6 Problemas
1. Calcule:
a)
(35.7)(64)-7
3
45+5
2

b) [
5
4
¸ (7)(6)
2
+
3
¨
(9
3
-652)


2. Calcule:
a) (2 +7)
3
+
273
2
3
,
2
+
55
2
3

b) 2
3
+7
3
+
273
3
2
+SS
3
2
,


3. Calcule:
a)
3
¨
Iog (76)
7
3
+546
+ √91u
3

b) (4S)
[ √250
4
+23¸
2
c
(4S-3
3
)


4. Calcule:
a) cos
2
[
5n
6
¸ scn [
7n
8
¸
2
+
tun[
n
6
In8¸
√7

b) Cos [
5n
6
¸
2
scn
2
[
7n
8
¸ +
tun[
n
6
In8¸
(7)[
S
2
¸


5. Defina la variable x=13.5 y calcule:
a) x
3
Sx
2
-26.7x -S2
b)
√14x
3
c
3x

c) log|x
2
-x
3
|

6. Defina las variables x=9.6 y z=8.1 calcule:
d) xz
2
-[
2z
3x
¸
3
5
,

e)
443z
2x
3
+
c
-xz
(x+z)


7. Defina las variables a=15.62, b=-7.08, c=62.5 y d=0.5(ab-c), y calcule:
a) o +[
ub
c
¸
(u+d)
2
¸|ub|

b) Jc
[
d
2
¸
+
cd+cd
20
c
+
30
b
(u+b+c+d


8. Dadas las siguientes identidades trigonométricas:
- 18 -

a) scn 2x = 2 scn x cos x
b) cos
x
2
= _
1+cos x
2

Verifique que ambas son correctas calculando para ello cada lado de la
identidad, sustituyendo el valor de x =
5
24
n
9. Dadas las siguientes identidades trigonométricas:
c) ton 2x =
2tanx
1-tun
2
x

d) ton
x
2
= _
1-cos x
1+cos x

Verifique que ambas son correctas calculando para ello cada lado de la
identidad, sustituyendo el valor de x =
3
17
n
10. Defina dos variables: olpbo =
5n
9
y bcto = n¡7. Utilice estas variables para
demostrar que la siguiente identidad trigonométrica es correcta.
cos × -cos [ = 2 scn
1
2
(o -[)scn
1
2
([ -o)

11. Cuando se suman fracciones debe calcularse el mínimo común múltiplo para
poder realizar la operación correctamente. Por ejemplo en minimo común
múltiplo de ¼ y 1/10 es 20. Encuentre una función apropiada que calcule el
mínimo común múltiplo de dos números, por ejemplo demuestre que:
a) El minimo común múltiplo de 4 y 10 es 20
b) El minimo común múltiplo de 6 y 38 es 114

12. La magnitud M de un terremoto en la Escala Richter viene dada por: H =
2
3
log
L
L
0

donde E es la energía emitida por el terremoto y E
0
=10
4.4
julios es una constante
(energía de un terremoto más pequeño de referencia). Determine cuantas veces
más energía emite un terremoto que registra 7.2 en la Escala de Richter respecto
a otro que registra 5.3.

13. Cree un vector fila que contenga los elementos: 32, 4, 81,e
2.5
, cos(π/3), 14, 12

14. Cree un vector columna que contenga los elementos: 55, 14, ln(51), 987, 0,
5sen(2.5π).

15. Cree un vector fila en el cual el primer elemento sea 1 y el último elemento sea
33, con una distancia de 2 entre los elementos (1, 3, 5,….33).
- 19 -


16. Cree un vector columna en el cual el primer elemento sea 15, la distancia de los
elementos sea -5, y donde el último elemento sea -25. (un vector columna se
puede crear a partir de la transposición de un vector fila).

17. Cree un vector fila con 15 elementos igualmente distanciados, en el cual el
primer elemento sea 7 y el último 40.

18. Cree un vector columna con 12 elementos igualmente distanciados, en el cual el
primer elemento sea -1 y el último -15.

19. Cree un vector, llamado Aprimero, que tenga 16 elementos, siendo el primero el
4, con un incremento de 3 siendo el último elemento el 49. Posteriormente utilice
el símbolo de dos puntos para crear un nuevo vector, llamado Asegundo, que
tenga ocho elementos. Los primeros cuatro elementos serán los primeros cuatro
elementos del vector Aprimero, y los cuatro últimos serán los cuatro últimos
elementos del vector Aprimero.

20. Cree una matriz como la que se muestra utilizando la notación de vectores para
crear vectores con distancia constante, y/o el comando linspace para crear las
filas.

A = _
1 4 7 1u 1S 16 19 22 2S
72 66 6u S4 48 42 S6 Su 24
u u.12S u.2Su u.S7S u.Suu u.62S u.7Su u.87S 1.u
_
21. Cree la siguiente matriz: A=_
6 4S 2 11 87
12 6 S4 u S
S4 18 7 41 9
_
Utilice la matriz para:
a) Crear un vector fila de cinco elementos llamado va, que contenga los
elementos de la segunda fila de A.
b) Crear un vector fila de seis elementos llamado vb, que contenga los
elementos de la cuarta columna de A.
c) Crear un vector fila de diez elementos llamado vc, que contenga los
elementos de la primera y segunda fila de A.
d) Crear un vector fila de seis elementos llamado vd que contenga los elementos
de la segunda a la quinta columna de A.

22. Cree la siguiente matriz: C= _
2 4 6 8 1u
S 6 9 12 1S
7 14 21 28 SS
_
Utilice la matriz C para:
- 20 -

a) Crear un vector columna de tres elementos llamado ua, que contenga los
elementos de la tercera columna de C.
b) Crear un vector columna de cinco elementos llamado ub, que contenga los
elementos de la segunda fila de C.
c) Crear un vector columna de nueve elementos llamado uc, que contenga los
elementos de la primera, tercera y quinta columna de C.
d) Crear un vector columna de diez elementos llamado ud, que contenga los
elementos de la primera y segunda fila de C.

23. Cree la siguiente matriz A = _
1 2 S 4 S 6 7
2 4 6 8 1u 12 14
21 18 1S 12 9 6 S
S 1u 1S 2u 2S Su SS
_

a) Cree una matriz B de 3x4 a partir de la primera, tercera y cuarta fila, y de la
primera, tercera, quinta y séptima columna de la matriz A.
b) Cree un vector fila de 15 elementos llamado u, a partir de los elementos de la
tercera fila y de la quinta a la séptima columna de la matriz A.

24. Utilizando las funciones zeros, ones y eye, cree los siguientes arrays:

A = j
u u u u u
u u u u u
[ B = _
1 u u u
u 1 u u
u u 1 u
u u u 1
_ C = _
1 1
1 1
1 1
_
25. Utilizando el comando eye, cree un array A. a continuación, utilice los dos punto
para acceder a los elementos en el array, cambiando el array para que sea como
el de la parte derecha.

A =
l
l
l
l
l
l
l
1 u u u u u u
u 1 u u u u u
u u 1 u u u u
u u u 1 u u u
u u u u 1 u u
u u u u u 1 u
u u u u u u 1
1
1
1
1
1
1
1
A =
l
l
l
l
l
l
l
2 2 2 u S S S
2 2 2 u S S S
S S S u S S S
u u u 1 u u u
4 4 7 u 9 9 9
4 4 7 u 9 9 9
4 4 7 u 9 9 9
1
1
1
1
1
1
1


26. Utilizando las funciones zeros y ones, cree una matriz 3x5 en la cual la primera,
segunda y quinta columnas sean ceros, y la tercera y cuarta columnas sean
unos.

27. Cree una matriz de 5x7 en la cual la primera fila contenga los números: 1 2 3 4 5
6 7, y la segunda fila contenga: 8 9 10 11 12 13 14, la tercera fila contenga los
números del 15 al 21, y así sucesivamente. A partir de esta matriz, cree otra
- 21 -

nueva de 3x4 compuesta por las filas 2 a la 4 y las columnas de la 3 a la 6 de la
primera matriz.
28. Cree una matriz A de 3x3 donde todos los elementos sean 1. Cree también una
matriz B de 2x2 donde todos los elementos sean 5. A continuación, añada
nuevos elementos a la matriz A a base de añadir la matriz B, de manera que A
quede finalmente de la siguiente forma:

A =
l
l
l
l
l
1 1 1 u u
1 1 1 u u
1 1 1 u u
u u u S S
u u u S S
1
1
1
1
1


29. Sea la función y = (x
2
+1)
3
x
3
, calcular el valor de y para los siguientes valores
de x: -2.5, -2, -1.5, -1, -0.5, 0, 1, 1.5, 2, 2.5, 3. Resuelva el problema creando
primero un vector x y después un vector y, utilizando las operaciones elemento a
elemento para el cálculo.

30. La profundidad de un pozo, d, en metros se puede determinar a partir del tiempo
que tarda en caer una piedra a su interior (vel. inicial cero). Este cálculo viene
determinado por: J =
1
2
gt
2
, donde t es el tiempo en segundos y g=9.81 m/s
2
.
Calcular d para t=1, 2, 3, 4, 5, 6, 7, 8, 9, 10 s. Cree un vector t y calcule d
utilizando operaciones elemento a elemento.

31. Defina x e y como vectores, tales que x=2, 4, 6, 8, 10, y=3, 6, 9, 12, 15. Calcular
z a partir de operaciones elemento a elemento.
z =
xy +
y
x
(x +y)
(¡-x)
+12
x
¡
,


32. Defina los escalares h=0.9, k=12.5, y los vectores x=1, 2, 3, 4, y= 0.9, 0.8, 0.7,
0.6, z=2.5, 3.0, 3.5, 4.0. Utilice estas variables para calcular T utilizando
operaciones elemento a elemento.
I =
xyz
(b +k)
k
5
,
+
kc
[
z
x
+¡¸
z
h

33. Demuestre que lim
n-«
[1 +
1
n
¸
n
= c
Para hacer esto cree un vector n que tenga los elementos: 1, 10, 100, 500, 1000,
2000, 4000, 8000. Después cree un vector y en el cual cada elemento será
calculado a partir de los elementos de n mediante [1 +
1
n
¸
n

Compare los elementos de y con el valor de e (teclee exp(1) para el valor de e)

- 22 -

34. Demostrar que la serie numérica ∑
1
n
2
«
n=1
converge a
n
2
6
, . Para hacer esto,
calcule la suma para:
a) n=100
b) n=1000
c) n=10000
para cada inciso, cree un vector v en el cual el primer elemento sea 1, con
incremento 1, y como ultimo termino 100, 1000 o 10000. Utilice posteriormente
operaciones elemento a elemento para crear un vector en el cual los elementos
sean 1/n
2
. Finalmente utilice la función sum para sumar los términos de la serie.
Compare los valores obtenidos en los incisos a, b, c con el valor
n
2
6
,
35. demostrar que la serie ∑
1
(2n+1)(2n+2)
«
n=0
converge a ln 2. Para hacer esto, calcule
la suma para:
a) n=50
b) n=500
c) n=5000
para cada inciso cree un vector n en el cual el primer elemento sea 0, el
incremento 1 y el último término 50, 500, 5000. Posteriormente calcule,
mediante operaciones elemento a elemento, un vector en el cual los
elementos sean
1
(2n+1)(2n+2)
. Finalmente utilice la función sum para sumar los
términos de la serie. Compare el valor obtenido en los incisos a, b, c, con ln 2.

36. Cree las siguientes matrices:

A = _
S 2 4
1 7 -S
6 -1u u
_ B = _
11 S -S
u -12 4
2 6 1
_ C = _
7 14 1
1u S -2
8 -S 9
_

a) Calcule A+B y B+A para demostrar que la suma de matrices cumple la
propiedad conmutativa.
b) Calcule A+(B+C) y (A+B)+C para demostrar que la suma de matrices cumple
la propiedad asociativa.
c) Calcule 5(A+C) y 5A+5C para demostrar que, cuando se multiplica una matriz
por un escalar, la multiplicación cumple la propiedad distributiva.
d) Calcule A(B+C) y AB+AC para demostrar que la multiplicación de matrices
cumple la propiedad distributiva.

37. Utilice las matrices A, B y C anteriores para contestar a las siguientes preguntas:
a) ¿Es A*B=B*A
b) ¿Es A*(B*C)=(A*B)*C?
- 23 -

c) ¿Es (A*B)
t
=B
t
*A
t
? (
t
significa transpuesta)
d) ¿Es (A+B)
t
=A
t
+B
t
?

38. Resuelva el siguiente sistema de ecuaciones lineales:
5x+4y-2z+6w=4
3x+6y+6z+4.5w=13.5
6x+12y-2z+16w=20
4x-2y+2z-4w=6

39. Un proyectil se dispara con una velocidad de 750 m/s. calcule la distancia d a la
que el proyectil alcanza el suelo si el ángulo de lanzamiento θ cambia de 5° a 85°
en incrementos de 5°. Utilice operaciones elemento a elemento para visualizar
los resultados cree una matriz de 17x2 en la cual los elementos de la primera
columna sean los ángulos de lanzamiento, y los de la segunda las
correspondientes distancias redondeadas al entero más próximo.

40. Dos proyectiles A y B, se disparan en el mismo instante desde el mismo punto. El
proyectil A se dispara a una velocidad de 680 m/s con un ángulo de 65°,
mientras que el proyectil B se dispara a una velocidad de 780 m/s con un ángulo
de 42°. Calcule que proyectil llega antes a tierra. Después, tome el tiempo de
vuelo t
f
de ese proyectil y divídalo en diez incrementos, creando para ello un
vector t con 11 elementos igualmente espaciados (el primer elemento será 0 y el
ultimo t
f
). Calcule la distancia entre los dos proyectiles para cada una de estas 11
tabulaciones de t





- 24 -

3. Programación y Archivos m.

3.1 El editor de archivos m.

Las funciones y scripts no son más que archivos de texto ASCII, con la extensión *.m,
que contienen definición de funciones o conjuntos de comandos respectivamente.

El editor permite tanto crear y
modificar estos archivos,
como ejecutarlos paso a paso
para ver si contienen errores
(proceso de Debug o
depuración, eliminar errores al
programa).

También Matlab permite que
utilicemos cualquier editor
(edit de DOS, Word, Notepad,
etc.), ya que los archivos son
sólo de texto. El gráfico
muestra la ventana principal
del Editor/Debugger.

Puede apreciarse que aun no
se ha introducido código
alguno.

El editor muestra con diferentes colores los diferentes tipos o elementos constitutivos de
los comandos. (en verde los comentarios, en rojo las cadenas de caracteres, etc.). El
editor además indica que las comillas o paréntesis que se abren se cierren
correctamente.

A continuación se observa un script llamado prueba.m, (en la barra azul puede
verificarse), el cual contiene un conjunto de comandos, relativos al uso de matrices y
cadenas.
NOTAS: La función rand(n) retorna una matriz cuadrada nxn, cuyos elementos son
números aleatorios entre 0 y 1, la función magic(n) también retorna una matriz cuadrada
nxn pero con la particularidad de que la suma de los elementos de cada una de sus
filas, columnas y diagonales tiene el mismo valor.

- 25 -

Recuerde que las cadenas de caracteres se delimitan con comillas simples y no con
comillas dobles.

La función inv(M) retorna la
matriz inversa de M.

Es importante la utilización del
punto y coma (;) al final de
cada sentencia, pues evita
que Matlab haga eco de la
misma al ejecutarla
produciendo salida
innecesaria al Command
Window.
Esta figura corresponde a la
ejecución de este archivo de
comandos controlado con el
Debugger. Dicha ejecución
se comienza con el comando
Run en el menú Debug.
Los puntos rojos que aparecen en el margen izquierdo son breakpoints (puntos donde
se detiene la ejecución del programa).

La flecha amarilla indica la sentencia en que está detenida la ejecución; cuando el
cursor se coloca sobre una variable aparece una ventana con los valores de esa
variable.

Puede verse en la figura que está activa barra de herramientas que corresponde al
Debugger. Cada botón significa lo siguiente.

Set/Clear Breakpoint. Coloca o borra un breakpoint en la línea en que está el
cursor.
Clear All Breakpoints. Elimina todos los breakpoints que haya en el fichero.
Step. Avanzar un paso sin entrar en las funciones de usuario llamadas en esa
línea.
Step In. Avanzar un paso, y si en ese paso hay una llamada a una función cuyo
fichero *.m está accesible, entra en dicha función.
Step Out. Salir de la función que se está ejecutando en ese momento.
Continue. Continuar la ejecución hasta el siguiente breakpoint.
Exit Debug Mode. Terminar la ejecución del Debugger.
Stack. En la parte derecha de la barra de herramientas aparece esta lista desplegable
mediante la cual se puede elegir el contexto, es decir el espacio de trabajo o el ámbito
de las variables que se quieren examinar.
- 26 -

3.2 Manejo de Archivos m y elementos básicos de programación.

¿Cómo accedemos al editor?
Desde el Command Window: >> edit;
Desde el menú File / New / M-file.

¿Cómo se ejecuta un script?
Sencillamente se debe introducir su nombre en la línea de comandos. O mediante el
editor.

¿Cómo se ejecuta una función?
De igual manera que un script pero sus argumentos deben pasarse entre paréntesis y
separados por coma.
Ejemplo: mi_funcion(arg1, arg2, ..., argn)

¿Qué es una variable?
Una variable es esencialmente una etiqueta a la que se le asigna un valor mientras el
valor permanece en memoria.

Funciones de entrada y salida:

Valores de entrada en un fichero script.
Cuando se ejecuta un fichero script, las variables utilizadas en los cálculos dentro del
fichero deben tener valores asignados previamente. La asignación de estos valores se
puede realizar de tres formas, dependiendo de dónde y cómo se haya definido la
variable.







- 27 -


Input: Esta función permite imprimir un mensaje en la línea de comandos y recuperar
como valor de retorno un valor numérico o el resultado de una expresión tecleada.
el comando input también se puede utilizar para asignar una cadena a una variable. se
puede realizar de dos formas: Una es introduciendo la cadena entre comillas simples
una vez que el mensaje del comando input se visualiza en la Ventana de comandos.
Otra es utilizar una opción de comando input que permite concretar que los caracteres
serán introducidos como cadena. Este comando tiene la siguiente forma:
nombre_variable=input(‘Mensaje’,’s’)
- 28 -

Comandos de Salida:

Comando Disp:
Esta función 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.





- 29 -

Comando fprintf :
Se utiliza para visualizar salidas de programas (texto y datos) en la pantalla, o bien para
almacenarlas en un archivo, con este comando a diferencia de disp., la salida puede
tener un formato preestablecido. En este caso se pueden combinar texto y resultados
numéricos provenientes de cálculos o variables predefinidas en la misma línea.
Además, el formato de los números se puede controlar directamente.


%La sal i da de est a l í nea se escr i bi r á en f or ma cont i nua
f pr i nt f ( ' El pr obl ema no t i ene sol uci ón. Por f avor , compr uebe l os dat os de ent r ada' )

El problema no tiene solución. Por favor, compruebe los datos de entrada


%La sal i da de est a l í nea es di vi da en dos r engl ones por el car áct er \ n
f pr i nt f ( ' El pr obl ema no t i ene sol uci ón. \ n Por f avor , compr uebe l os dat os de ent r ada' )

El problema no tiene solución.
Por favor, compruebe los datos de entrada>>


Utilización del comando fprintf para visualizar datos y texto juntos:

fprintf(‘texto %-5.2f texto adicional’, nombre_variable)

o el símbolo % marca el lugar donde se insertará el numero dentro del texto.
o El signo – (opcional), bandera, si es – (menos) Justificación izquierda del numero
dentro del campo, si es + (mas) Visualiza el carácter del signo(+ o -) delante del
numero, si es 0(cero) Añade ceros si el numero es más pequeño que el campo.
o La especificación del ancho y precisión del campo (5 en el ejemplo) es opcional. El
primer número es el ancho del campo, el cual nos indica el menor número de
dígitos en la visualización. Si el numero que se visualiza es menor que el ancho del
campo, se añadirán ceros o espacios delante del número en cuestión. El segundo
número (2 en el ejemplo) especifica el número de dígitos que se mostraran a la
derecha del punto decimal.
o El formato de conversión (f en el ejemplo), es obligatorio. A continuación se
muestran los caracteres de conversión más utilizados:

e Notación exponencial en minúsculas (ej. 1.709098e+001)
E Notación exponencial en mayúsculas (ej. 1.709098E+001)
f Notación de punto fijo (ej. 17.090980)
g Representación en formato corto de las notaciones e o f.
G Representación en formato corto de las notaciones E o f
i Entero



- 30 -

Ejemplo de cómo usar el comando fprintf:

















- 31 -


- 32 -

3.3 Estructuras de Control

3.3.1 Sentencia If:
En su forma más simple, la sentencia if se describe como sigue:

if condicion
sentencias
end

La condición no va encerrada entre paréntesis.

Existe también la "bifurcación múltiple", en la que pueden concatenarse tantas
condiciones como se desee, y que tiene la forma:

if condicion1
bloque1
elseif condicion2
bloque 2
elseif condicion3
bloque 3
else % opción por defecto para cuando no se cumplan las otras condiciones.
bloque 4
end

El uso de else es opcional.

Operadores relacionales Operadores lógicos
Igualdad == and & (ampersand)
Desigualdad ~= or | (pipe)
Menor < not ~ (tilde)
Mayor > xor o exclusivo
Menor o igual <= any True si algún elemento del vector es true
Mayor o igual >= all True si todos los elementos del vector son true

Ejemplos













- 33 -

















































- 34 -




3.3.2 Sentencia Switch:
Esta sentencia realiza la función análoga a un conjunto if...elseif concatenados. Su
forma general es:
switch switch_expresion
case {case_expr1}
bloque 1
case {case_expr2, case_expr3, case_expr4, ...},
bloque 2
otherwise,
bloque 3
end

NOTA: Al igual que con else, el uso de otherwise es opcional.
Al principio se evalúa la switch_expresion, cuyo resultado debe ser un número 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 (que
significa de otra manera). Es posible poner varias case_expr dentro de llaves.

Ejemplo de uso switch:
- 35 -
































3.3.3 Sentencia For:
La sentencia for repite un conjunto de sentencias un número predeterminado de veces.
La siguiente construcción ejecuta sentencias con valores de i de 1 a n, variando en uno:

for i=1:n
sentencias
end

For anidados:
for i=1:n
for j=1:m
sentencias
end
end

Ejemplos de uso de for:
nro = input('Ingrese un número positivo: ');
- 36 -

















































- 37 -

























Serie Numérica: Calcular la suma de los primeros n términos de la siguiente serie
numérica: ∑
(-1)
k
k
(2)
k
n
k=1

Ejecutar el archivo para n=4 y para n=20.




Modificación de los elementos de un vector:
Sea el vector V=[5,17,-3,8,0,-1,12,15,20,-6,6.4,-7,16],. Escribir un programa que
multiplique por dos los elementos de V positivos y divisibles por 3 y/o por 5, y eleve al
cubo los elementos negativos pero mayores que -5

- 38 -





3.3.4 Sentencia While:
La sintaxis de la estructura while es la siguiente.
while condicion
sentencias
end
- 39 -


donde condicion puede ser una expresión vectorial o matricial. Las sentencias se
siguen ejecutando mientras haya elementos distintos de cero en condicion, es decir,
mientras haya algún o algunos elementos true. El bucle termina cuando todos los
elementos de condicion son false (es decir, cero).

Ejemplo de uso de while:



Ejemplo de uso de while con break (corta el bucle):







- 40 -



3.3.5 Funciones (Function)
Los scripts aportan a Matlab la manera de realizar tareas de una manera más rápida.

Las funciones permiten definir funciones enteramente análogas a las de Matlab, con su
nombre, sus argumentos y 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.

Tanto en scripts como en funciones la primera línea de comentarios conforma el help.

Ejemplo:
Dado el script llamado cuadrado.m:
% este es un script que eleva un número al cuadrado
nro = input('Ingrese un número positivo: ');
nro = nro * nro;
disp('El número ingresado elevado al cuadrado es: ');
disp(nro);


Y cuando escribimos en el Workspace:
>> help cuadrado
este es un script que eleva un número al cuadrado

- 41 -


Construcción de funciones:
La primera línea de un archivo llamado ejemplo.m que define una función tiene la
forma:

function [lista de valores de retorno] = ejemplo (lista de argumentos)
donde ejemplo es el nombre de la función. Entre corchetes y separados por coma van
los valores de retorno (siempre que haya más de uno), y entre paréntesis también
separados por comas los argumentos. Puede haber funciones sin valores de retorno y
también sin argumentos. Si no hay valores de retorno se omiten los corchetes. Y el
signo igual (=); si sólo hay un valor de retorno no hacen falta poner corchetes. Tampoco
hace falta poner paréntesis si no hay argumentos.

Las variables definidas dentro de una función son variables locales, en el sentido de
que son inaccesibles desde otras partes del programa y en el que no interfieren con
variables del mismo nombre definidas en otras funciones o partes del programa. Para
que la función tenga acceso a variables que no han sido pasadas como argumentos es
necesario declarar dichas variables como variables globales, tanto en el programa
principal como en distintas funciones que deben acceder a su valor.

Dentro de la función, los valores de retorno deben ser calculados en algún momento (no
hay sentencia return). Se utiliza return sólo para salir forzosamente del cuerpo de la
función.


Ejemplos de funciones:




- 42 -





Escribir un archivo de función (llamado ecuación) para la función ¡(x) =
x
4
√3x+5
(x
2
+1)
2
. La
entrada de la función es x y la salida f(x). Escribir la función tal que x sea un vector.
Utilizar la función pata calcular:





- 43 -




3.4 Aplicaciones

Plan de pensiones.
Una persona jubilada de la Universidad tiene 500,000 pesos en una cuenta de plan de
pensiones que le paga el 5% de interés anual. Esta persona planea sacar dinero de su
cuenta una vez al año. Empieza sacando 25,000 pesos después del primer año.
Posteriormente en el futuro, incrementara la cantidad retirada en función de la tasa
inflación anual. Por ejemplo, si la inflación es del 3%, retirara 25750 pesos al final del
segundo año. Calcular el número de años que esta persona tardara en sacar todo el
dinero de su cuenta. Suponiendo para ello una inflación anual constante del 2%.
Representar en un grafico las cantidades anuales de dinero retiradas y el balance de la
cuenta a lo largo de los años.


- 44 -



Generación de números para el sorteo de la lotería.
En un sorteo de lotería el jugador debe elegir varios números de entre una lista dada.
Escribir una función que genere una lista n de números enteros, distribuidos
uniformemente entre un rango a y b. todos los números seleccionados de la lista deben
ser distintos.

a) Utilizar la lista para generar una lista de 6 números que varíen entre 1 y 49
b) Utilizar la lista para generar una lista de 8 números que varíen entre 60 y 75
c) Utilizar la lista para generar una lista de 9 números que varíen entre -15 y 15



- 45 -



Problemas:
1.- la temperatura máxima diaria (en °F) en Nueva York y Anchorage, Alaska, durante el
mes de enero de 2001 viene dada por los siguientes vectores.

TNY=[31 26 30 33 33 39 41 41 34 33 45 42 36 39 37 45 43 36 41 37 32 32 35 42 38 33
40 37 36 51 50]
TANC=[37 24 28 25 21 28 46 37 36 20 24 31 34 40 43 36 34 41 42 35 38 36 35 33 42
42 37 26 20 25 31]

Escriba un programa que calcule:
a) La temperatura media en ese mes para cada ciudad.
b) El número de días que estuvo la temperatura de cada ciudad por debajo de la
media.
c) El número de días, y a que días de mes corresponden, en los cuales la
temperatura fue igual en ambas ciudades.
d) El número de días, y a que días del mes corresponden, en los cuales la
temperatura de ambas ciudades se mantuvo por encima de 32 °F.

2.- represente la siguiente función de dos formas distintas:
¡(x) = _
4c
x+2
-6 ¸ x ¸ -2
x
2
-2 ¸ x ¸ 2.S
(x +6.S)
1
3
,
2.S ¸ x ¸ 6

a) Escribiendo un fichero script que utilice bucles y sentencias condicionales.
b) Escribiendo una función f(x) para utilizarla posteriormente en un archivo script

3.- escriba un programa script que calcule las raíces reales de una función cuadrática
ax
2
+bx+c=0.
- 46 -

Llame al archivo raicescuad. Cuando el archivo se ejecute, este debe pedir al usuario
que introduzca los valores de las constantes a, b y c. Para calcular las raíces de la
ecuación, el programa calculara el discriminante D=b2-4ac

Si D>0, el programa visualizara un mensaje del tipo: ’La ecuación tiene dos raíces’, y
los valores de las raíces se visualizaran en la línea siguiente.
Si D=0, el programa visualizara un mensaje del tipo: ’La ecuación tiene una raíz’, y el
valor de la raíz se visualizara en la línea siguiente.
Si D<0, el programa visualizara un mensaje del tipo: ’La ecuación no tiene raíces
reales’.
Calcule las soluciones de las siguientes ecuaciones:
2x
2
+8x-3=0
15x
2
+10x+5=0
18x
2
+12x+2=0

4.- utilice bucles para crear una matriz A de dimensión 4x7, en la cual el valor de cada
elemento sea la suma de sus índices (el número de la fila y el número de la columna de
cada elemento). Por ejemplo, el valor del elemento A(2,5) será 7.

5.- utilice bucles y sentencias condicionales para crear una matriz de dimensión 5x8, en
la cual el valor de cada elemento sea igual a la raíz cuadrada de la suma de los índices
de cada elemento, siempre que el elemento no se encuentre en una columna o fila par.
El valor de un elemento que este en una fila o columna par será igual a la suma del
cuadrado de los índices.

6.- escriba un programa (utilizando un bucle) que calcule la suma de los m primeros
términos de la serie:
(-1)
n
1
2n +1
(n = u, 1, 2, …, m)
m
n=0

Esta serie se denomina serie de Leibniz, y converge a π/4. Ejecute el programa para
m=10 y m=500, compare posteriormente estos resultados con el valor exacto π/4.

7.- sea el vector x= [15 -6 0 8 -2 5 4 -10 0.5 3]. Escriba un programa que utilice
sentencias condicionales y bucles para calcular la suma de los elementos positivos del
vector x

8.- escriba un programa script que encuentre el menor número entero impar que sea
divisible por 3, y cuyo cubo sea mayor que 4000. Utilice un bucle que comience en 1 y
se detenga cuando encuentre el número que cumpla las condiciones anteriores.
Finalmente el programa visualizara el mensaje: ’El número pedido es: ‘, y visualizara
seguidamente el número calculado.
- 47 -


9.- escriba una función que ordene los elementos de un vector de cualquier longitud, de
mayor a menor. Utilice la siguiente línea de definición de función: y=ordenar(x). la
entrada de la función será un vector x de cualquier longitud, y la salida y será un vector
que contendrá los elementos de x en orden descendente. No se puede utilizar la
función predefinida Sort para este ejercicio. Cree su propia función y pruébela con un
vector de 14 elementos (enteros) generados aleatoriamente y distribuidos entre -30 y
30.utilice la función rand para generar el vector inicial.

10.- escriba una función que ordene los elementos de una matriz. Utilice la siguiente
línea de definición de función: B = ordenarmatriz(A), donde A será una matriz de
cualquier tamaño, y B será otra matriz del mismo tamaño con los elementos de A
ordenados de forma ascendente, fila por fila. De esta forma, los elementos B(1,1) y
B(m,n) serán respectivamente, los elementos menor y mayor de la matriz ordenada.
pruebe posteriormente esta función en una matriz de 4x7, con números enteros
generados aleatoriamente y distribuidos entre -30 y 30. Utilice la función rand para
generar la matriz inicial.

11.- escriba un programa que calcule el costo de enviar un paquete en función de la
siguiente tabla de precios:
Tipo de
servicio
Peso
(0-2 libras)
Peso (2-10 libras) Peso (10-50 libras)
Tierra $ 15 $15 + $5 adicionales por cada
libra o fracción de libra, a partir
de las 2 libras de peso
$55 + $3 adicionales por cada
libra o fracción de libra, a partir
de las 10 libras de peso
Aire $ 30 $30 + $5 adicionales por cada
libra o fracción de libra, a partir
de las 2 libras de peso
$102 + $6 adicionales por cada
libra o fracción de libra, a partir
de las 10 libras de peso
Nocturno $ 180 $180 + $60 adicionales por
cada libra o fracción de libra, a
partir de las 2 libras de peso
No se realizarán entregas para
paquetes que pesen más de 10
libras.

El programa debe pedir al usuario que introduzca el peso y el tipo de servicio.
Seguidamente, el programa visualizara el costo del servicio. Si se introduce un paquete
que pese las de 50 libras para un servicio de aire o tierra, el programa visualizara un
mensaje del tipo: ‘No se realiza reparto por aire o tierra para paquetes con peso
superior a las 50 libras’. Si introduce el peso de un paquete que supera las 10 libras de
peso para un servicio nocturno, el programa visualizara un mensaje del tipo: ‘No se
realizan entregas nocturnas para paquetes que pesen más de 10 libras’.
Ejecute el programa e introduzca los valores 0.5, 6.3, 20, y 50.4 para servicio de tierra y
aire, así como 2,8.1 y 13 libras para el servicio de reparto nocturno.

- 48 -

12.- sea el vector x= [1:50] escriba un programa en un archivo script que borre del
vector x aquellos elementos que son divisibles por 3, 4 o 5. Al final el programa debe
mostrar el vector resultante.

13.- escriba una función con dos argumentos de entrada y dos de salida. La función
debe calcular la altura en pulgadas y la masa en libras de una persona a partir de su
altura en centímetros y de su peso en kilogramos. Utilice la siguiente definición de
función para el problema: [in,lb]=SIaSTi(cm,kg). Los argumentos de entrada son la
altura en centímetros y el peso en kilogramos, y los argumentos de salida son la altura
en pulgadas y la masa en libras. Posteriormente utilice esta función en la ventana de
comandos para:
a) Determinar la altura en pulgadas y la masa en libras de una persona que mide
170cm y pesa 70kg.
b) Determinar su propia altura y peso en pulgadas y libras, respectivamente.


14.- escriba una función para la siguiente función matemática:

y(x)=0.9x
4
-12x
2
-5x
la entrada de la función será x, y la salida será y, escriba la función de forma que x x
pueda ser un vector, y utilícela para:
a) Calcular y(-3) e y(5)
b) Representar gráficamente la función y(x) para -4≤x≤4

15.- el valor P de una cuenta de ahorros, con un capital inicial P
0
y una tasa de interés
anual r (en %) después de t años, viene dado por:

P = P
0
[1 +
r
1uu
¸
t


Escriba una función que calcule el valor futuro de una cuenta de ahorros. Utilice para
ello la siguiente línea de definición de función: P=saval(PO,r,t). las entradas de la
función serán el capital inicial, la tasa de interés y el número de años. La salida será el
valor de la cuenta a partir de los datos especificados en la entrada. Utilice
posteriormente esta función para calcular el valor de un capital inicial de 10000 pesos a
un interés anual del 6%, después de 13 años.

16.- escriba una función que convierta las unidades de un par de torsión (fuerza que
causa la rotación de un objeto) de libras-pulgada a newton-metro. Utilice la siguiente
línea de definición para la función: Nm=lbintoNm(lbin). El argumento de entrada será el
par en libras-pulgadas, y el argumento de salida el par en newton-metro. Utilice
posteriormente esta función para convertir 500 libras-pulgada a newton-metro.
- 49 -


17.- escriba una función que calcule la calificación final de un estudiante a partir de la
calificación de su examen final, sus dos parciales y de los cinco trabajos realizados
durante el curso. Los exámenes parciales puntúan de 0 a 100, y cada uno es un 20%
de la calificación final. El examen final tiene la misma escala de puntuación, y es un
40% de la calificación final. Los trabajos, sin embargo, puntúan de 0 a 10, y todos ellos
en conjunto representan un 20% de la calificación final.
La función debe tener la siguiente definición: g=calfinales(R), donde la entrada será una
matriz R que contenga en cada fila las calificaciones de cada estudiante. Además, por
cada fila, se tendrán 8 columnas que representaran las calificaciones de los trabajos
(las cinco primeras), la calificación de los dos exámenes parciales (las dos siguientes) y
la calificación del examen final (la última columna) de cada estudiante. La salida de la
función será un vector columna g con la calificación final del curso. Cada fila de este
vector será la calificación final del estudiante cuyas calificaciones se relacionan con la
correspondiente fila de la matriz R.
La función debe usarse para calcular las calificaciones finales de cualquier número de
estudiantes. Para el caso de un solo estudiante, la matriz R tendrá una sola fila. Aplique
está función en los siguientes casos:
a) Calcular la calificación final de un estudiante con las siguientes calificaciones: 10,
5, 8, 7, 9, 75, 87, 69.
b) Que el usuario capture las calificaciones de los estudiantes y las almacene en un
array (cada estudiante en una fila) el programa debe calcular seguidamente las
calificaciones finales utilizando la función calfinales. Calcular las calificaciones
finales de los siguientes cuatro estudiantes:
Estudiante A: 7, 9, 5, 8, 10, 90, 70, 85
Estudiante B: 6, 4, 7, 0, 7, 60, 71, 50
Estudiante C: 5, 9, 10, 3, 5, 45, 75, 80
Estudiante D: 8, 8, 7, 7, 9, 82, 81, 88

18.- cuando se conectan n resistencias en paralelo, su resistencia equivalente R
eq
viene
determinada por:
1
R
Lq
=
1
R
1
+
1
R
2
+·+
1
R
n


Escriba una función que calcule Req. Utilice la siguiente definición: REQ=req(R), donde
la entrada será un vector en el cual cada elemento representa un valor de la resistencia,
y la salida será el valor de la resistencia Req. Utilice está función para calcular la
resistencia equivalente de las siguientes resistencias conectadas en paralelo: 50Ω, 75Ω,
300Ω, 60Ω, 500Ω, 180Ω, 200Ω



- 50 -


4. Graficación.

4.1 Elementos de los gráficos de Matlab.
Con los comandos de Matlab se pueden crear distintos tipos de gráficos: estándares
con ejes lineales, logarítmicos o semilogarítmicos, de barras y escaleras, polares, de
malla y de superficies de contorno tridimensional, etc. Estos gráficos se pueden
personalizar para que tengan la apariencia deseada. Así, se puede establecer el tipo,
el color y el grosor de línea; se pueden añadir líneas de referencia y cuadriculas; y
también títulos y comentarios. . Además se pueden superponer varios gráficos sobre un
mismo sistema de ejes coordenados, o poner varios gráficos en una misma página.
Cuando un grafico tiene varios tipos de datos, también se pueden añadir leyendas.


4.2 Generación de gráficos 2D

4.2.1 El comando Plot
Se utiliza para crear gráficos bidimensionales.



La primer grafica
La orden
>> x=[1 2 3], y=[1 4 9], plot(x,y)

x =
1 2 3

y =
1 4 9

Realiza la representación grafica de los
puntos (1; 1), (2; 4) y (3; 9) unidos por una
línea recta.

Si la orden hubiera sido
>>plot(x,y,’:r’)

Entonces habría pintado los puntos x; y
como líneas punteadas rojas.


Para personalizar los gráficos, el comando
plot admite en su sintaxis otros argumentos
que se pueden utilizar para definir el color y
estilo de líneas y marcadores.

Plot (x,y, ’especificadores de línea’, ’Propiedades’, ’Valores’)
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
1
2
3
4
5
6
7
8
9
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
1
2
3
4
5
6
7
8
9
- 51 -

4.2.2 Especificadores de línea
Son opcionales y se pueden utilizar para definir el color y estilo de línea, así como el
tipo de marcadores:

Especificador Estilo de línea Especificador Color de línea
Línea continua r rojo
- Línea continua y amarillo
-- Línea de guiones m magenta
: Línea punteada c turquesa
-. Línea de guiones y puntos g verde
+ Cruces b azul
* asteriscos w blanco
. Puntos k negro
o Círculos
x Equis


Introduciendo una a una en la ventana de comandos las siguientes ordenes obtener la
representación grafica de la función f(x) = sen xe
-0.4x
en el intervalo [0, 10].

>> x=0:0.05:10;
>> y=sin(x).*exp(-0.4*x); % Por que se utiliza la operación .*?
>> plot(x,y) % genera la gráfica
>> axis([0,10,-1,1]) % La x valora en [0; 10] y la y en [-1; 1]
>> xlabel('eje x'), ylabel('eje y') % Rótulos en los ejes x; y
>> title('La Primer Grafica') %Titulo de la grafica
>> grid % Sitúa una rejilla en la grafica
>> text(4,-0.1,'Minimo') %Sitúa un comentario en el punto (4,-0.1)





0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
eje x
e
j
e

y
La Primer Grafica
Minimo
- 52 -

4.2.2 Propiedades y Valores

Son opcionales, y se utilizan para concretar el grueso de la línea, el tamaño de los
marcadores, así como los colores de relleno y del borde del marcador.
propiedad Descripción Posible valor de la propiedad
linewidth Especifica el grosor de la línea Un número representado en
unidades de puntos (por defecto 0.5)
markersize Especifica el tamaño de las marcas Un número representado en
unidades de puntos
markeredgecolor Especifica el color del marcador, o
el color del borde de la línea para
marcadores con relleno
Especificadores de color,
introducidos en forma de cadena
markerfacecolor Especifica el color de relleno de los
marcadores
Especificadores de color,
introducidos en forma de cadena

Ejemplo:

Plot(x,y, ‘-mo’, ‘linewidth ‘,2,’markersize’,12,’markeredgecolor’,’g’,’markerfacecolor’,’y’)

Crea un gráfico en el cual una línea sólida de color magenta une puntos que se
representan mediante marcadores en forma círculo. El grosor de línea es de 2 puntos, y
el tamaño de los círculos utilizados como marcadores es de 12 puntos. Los marcadores
(círculos) tienen bordes de color verde, y amarillo como color relleno.

Especificador propiedad Posible valor para la propiedad
Estilo de línea Linestyle Especificador de estilo de línea, introducidos en forma de cadena
Color de línea Color Especificador de color, introducidos en forma de cadena
Marcador marker Especificador de marcador, introducido en forma de cadena


- 53 -

4.2.4 Generación de gráficos a partir de datos dados

Ventas de una compañía desde el año 1988 a 1994
Año 1988 1989 1990 1991 1992 1993 1994
Ventas (millones) 8 12 20 22 18 24 27





- 54 -

4.2.5 Generación de gráficos a partir de funciones
Representar gráficamente la función y = S.S
-0.5x
cos (6x) en el intervalo -2 ¸ x ¸ 4.



4.2.6 El comando fplot
Representa gráficamente una función de la forma y=f(x) entre unos límites
especificados por el usuario. El comando tiene la siguiente sintaxis:

Fplot (‘función’, limites, especificadores de línea)

Representar una función del tipo y = x
2
+4scn(2x) -1 poro -S ¸ x ¸ S

>> fplot('x^2+4*sin(2*x)-1',[-3,3])

- 55 -


4.2.7 Representación gráfica de varias funciones a la vez
La representación de varias funciones se puede realizar de tre formas diferentes. Una
de ellas consiste en utilizar el comando plot, otra en utilizar los comandos hold on y hold
off, y la tercera consiste en utilizar el comando line.

Utilizando el comando plot
Dibujar la función y = Sx
3
-26x +1u, así como su primera y segunda derivadas, en el
intervalo -2 ¸ x ¸ 4. Todas las funciones deben representarse juntas en el mismo
gráfico.





- 56 -

Utilizando los comandos hold on y hold off




Utilizando el comando line


4.3 Edición de atributos de los gráficos.
Los gráficos se pueden formatear o bien utilizando comandos matlab a continuación de
los comandos plot o fplot, o bien utilizando el editor de gráficos de la ventana de
gráficos.
El primer método es útil cuando los comandos plot o fplot son parte de un programa
(archivo script). Cuando un programa incluye comandos de formato, cada vez que se
ejecuta crea un gráfico con formato. Por otra parte, el formato que se aplica mediante el
editor de gráficos de la ventana de gráficos solo se mantiene para un gráfico en
concreto, y se tendrá que volver a aplicar la próxima vez que se cree el gráfico.

4.3.1 Formateado de una representación gráfica mediante comandos
Los comandos de formato se introducen después de aquellos que crean o visualizan
gráficos: plot y fplot. Algunos de ellos son:

Los comandos xlabel , ylabel:
Sirven para poner titulo, en forma de texto, a los ejes. Su sintaxis es:
xlabel(‘texto’)
ylabel(‘texto’)

El comando title:
Añade un título (principal) al gráfico en la parte superior del mismo. Su sintaxis es:
title(‘texto’)
- 57 -


El comando text:
Permite situar una etiqueta de texto dentro del gráfico, tiene dos variantes:
text(x,y,’texto’)
gtext(‘texto’)

El comando axis:
Cuando el comando plot(x, y) se ejecuta, matlab crea los ejes correspondientes para la
representación gráfica, basándose en los valores máximo y mínimo de los valores
posibles que toman x e y. El comando axis permite cambiar el rango de los ejes, así
como su apariencia. A continuación se muestran algunos de los posibles formatos que
acepta el comando axis.

axis([xmin,xmax,ymin,ymax]) establece los límites de ambos ejes, x e y, entre los
valores máximos y mínimos.
axis equal Establece la misma escala en ambos ejes.
axis square Establece la región de los ejes en un cuadrado.
axis tight Establece los límites de los ejes en función del rango de los datos.

El comando grid:
grid on Añade una cuadrícula a la representación gráfica.
grid off Elimina la cuadrícula de la representación gráfica.

Ejemplo:


- 58 -




4.3.2 Formateado de una representación gráfica mediante el editor gráfico
La apariencia de un gráfico generado en la ventana de gráficos se puede modificar de
forma interactiva pulsando con el ratón sobre el gráfico y/o utilizando los menús. El
editor gráfico se puede utilizar para añadir elementos nuevos o componentes en una
representación gráfica, o para modificar el formato de los elementos previamente
introducidos mediante comandos.
4.3.3 Gráficos con ejes logarítmicos
Los comandos utilizados en matlab para representar gráficos con ejes logarítmicos son:

Ejemplo:
Graficar la función y = 2
(-0.2x+10)
poro u.1 ¸ x ¸ 6u utilizando distintas combinaciones
de escalas logarítmicas y lineales.

Nombre_variable=linspace(xi,xf,n)
(xi=primer elemento, xf=último elemento, n=número de elementos)


- 59 -




4.3.4 Gráficos varios
Gráfico de barras
verticales
Formato de la función:
bar(x,y)
- 60 -

Gráfico de barras
horizontales
Formato de la función:
barh(x,y)

Gráfico de escaleras
Formato de la función:
stairs(x,y)

Gráfico de tallo o
líneas verticales
Formato de la función:
stem(x,y)

Gráfico circular
Formato de la función
Pie(x)

Más de un gráfico en la misma página.
Con la orden subplot podemos representar una matriz con mxn subgráficas en una sola
figura; la sintaxis es:
- 61 -


subplot(m,n,k)

Donde k es un número natural que
indica el orden en que aparece la
gráfica: la primera, la segunda, ...
Como ejemplo ejecutamos el
siguiente listado:

t=0:0.3:40;
subplot(2,2,1), plot(t,cos(t))
title('Gráfica 2,2,1')
xlabel('t'); ylabel('cos(t)')
subplot(2,2,2), plot(t,t.*cos(t))
title('Gráfica 2,2,2')
xlabel('t'); ylabel('t.*cos(t)')
subplot(2,2,3), plot(t,cos(t).^2)
title('Gráfica 2,2,3')
xlabel('t'); ylabel('cos(t).^2')
subplot(2,2,4), plot(t,(t.^2).*(cos(t).^2))
title('Gráfica 2,2,4')
xlabel('t'); ylabel('t.^2.*cos(t).^2')


Graficas de curvas
La representación de la curva de ecuaciones polares ρ(θ) = sen(4θ)e
-0.3 θ
para θ Є
[0, π] se puede realizar con la orden polar y con el siguiente listado:

t=0:.05:pi; r=sin(4*t).*exp(-.3*t);
polar(t,r)
title('Coordenadas polares')
grid















0.2
0.4
0.6
0.8
1
30
210
60
240
90
270
120
300
150
330
180 0
Coordenadas polares
0 10 20 30 40
-1
-0.5
0
0.5
1
Gráfica 2,2,1
t
c
o
s
(
t
)
0 10 20 30 40
-40
-20
0
20
40
Gráfica 2,2,2
t
t
.
*
c
o
s
(
t
)
0 10 20 30 40
0
0.2
0.4
0.6
0.8
1
Gráfica 2,2,3
t
c
o
s
(
t
)
.
2
0 10 20 30 40
0
500
1000
1500
Gráfica 2,2,4
t
t
.
2
.
*
c
o
s
(
t
)
.
2
- 62 -

4.4 Grabar y Exportar.

• Una vez completado un gráfico, puede ser almacenado de dos formas:
o Guardarlo con un formato que permita abrirlo en una nueva sesión de
MATLAB, abriendo una ventana de diálogo seleccionando File → Save, o
bien, save grafico.fig en la ventana de comandos o en el
Editor/Debugger.
o Exportarlo, eligiendo el formato adecuado al programa donde lo vayamos
a utilizar. Esto se consigue: Seleccionar File → Export... y elegir la
extensión deseada en la ventana de diálogo o escribiendo » print
grafico.ext en la ventana de comandos o en el Editor/Debugger.


4.5 Introducción a gráficos 3D
Los gráficos tridimensionales proporcionan una manera práctica de representar datos
de más de dos variables. Matlab proporciona distintas opciones y funciones destinadas
a la representación de gráficos tridimensionales.

4.5.1 Gráficos de línea
Está constituido por una línea que se obtiene uniendo una serie de puntos en un
espacio tridimensional. La forma más sencilla y básica es mediante la función plot3.

Plot3(x,y,z, ’Especificadores de línea’, ’propiedades’, ’Valores’)

Ejemplo:

x = √t scn(2t) y = √t cos(2t) z = u.St intcr:olo u ¸ t ¸ 6n







- 63 -

4.5.2 Gráficos de malla y superficie
Son gráficos tridimensionales utilizados para representar funciones que tiene la forma
z=f(x,y), donde x e y son variables independientes, y z es la variable dependiente.
Estos gráficos se generan n tres pasos:
o El primer paso es crear una malla o rejilla en el plano x-y que cubra el dominio de
la función. [x,y]=meshgrid(x,y)
o El segundo paso es calcular el valor de z en cada punto de la rejilla.
z=x.*y.^2./(x.^2+y.^2)
o El tercer paso es representar el gráfico. Mesh(x,y,z) o surf(x,y,z)

Tipo de gráfico Gráfico
Gráfico de malla: mesh(x, y, z)

Gráfico de superficie: surf(x, y, z)

Gráfico de malla con cortina: meshz(x, y, z)

Gráfico de malla con contorno: meshc(x, y, z)



- 64 -


Tipo de gráfico Gráfico
Gráfico de superficie con contorno: surfc(x, y, z)


Gráfico de superficie con alumbrado: surfl(x, y, z)

Gráfico de cascada: waterfall(x, y, z)

Gráfico de contorno 3-D: contour3(x, y, z, n)
n es el numero de niveles de contorno(opcional)

Gráfico de contorno 2-D: contour(x, y, z, n)
n es el numero de niveles de contorno(opcional)



- 65 -


Problemas:
1.- Represente dos gráficos de forma separada, de la función f(x)=0.6x
5
-5x
3
+9x+2; uno
de los gráficos debe estar en el dominio -4≤x≤4, y el otro en el dominio -2.7≤x≤2.7

2.- Represente la función ¡(x) =
x
2
-x+1
x
2
+x+1
poro -1u ¸ x ¸ 1u

3.- utilice el comando fplot para representar la función:

¡(x9 = u.u1x
5
-u.uSx
4
+u.4x
3
-2x
2
-6x +S cn cl Jominio -4 ¸ x ¸ 6

4.- represente la función ¡(x) =
1.5x
x-4
poro -1u ¸ x ¸ 1u. observe que esta función
posee una asíntota vertical en el punto x=4. Represente la función mediante la creación
de dos vectores para el dominio de x. el primer vector (llámelo x1) contendrá los
elementos -10 a 3.7, y el segundo vector (llámelo x2) los elementos 4.3 hasta 10.
Adicionalmente habrá que crear dos vectores y1 e y2 para los correspondientes valores
de la función sobre los dos vectores anteriormente creados para el dominio de x.
seguidamente represente la función mediante dos curvas en la misma región gráfica (y1
frente a x1, y2 frente a x2).

5.- Represente la función ¡(x) =
x
2
-5x+10
x
2
-2x-3
poro -1u ¸ x ¸ 1u. observe que esta función
tiene dos asíntotas verticales. Represente la función dividiendo el dominio de x en tres
partes; una que valla desde -10 hasta aproximadamente la asíntota izquierda, otra entre
las dos asíntotas, y una tercera desde aproximadamente la asíntota derecha hasta 10.
Establezca el rango del eje y entre -20 y 20.

6.- represente la función f(x)=3xsen(x)-2x y su derivada, ambas en la misma región
gráfica, en el intervalo -2π≤x≤2π. Represente la función con una línea solida, y su
derivada con una línea discontinua. Añada una leyenda y etiquetas para los ejes.

7.- la magnitud M, en la escala Richter, de un terremoto viene dada por:

m =
2
S
log
E
1u
4.4


Donde E es la energía en julios liberada por el terremoto.
Haga un gráfico de E (en ordenadas) frente a M (en abscisas) para 3≤M≤8. Utilice una
escala logarítmica para E y una lineal para M. etiquete los ejes y añada un titulo al
gráfico.

8.- la posición x en función del tiempo t de una partícula que se mueve a lo largo de una
línea recta viene dada por: x(t)=0.4t
3
-2t
2
-5t+13 metros.
La velocidad v(t) de la partícula se calcula mediante la derivada de x(t) con respecto al
tiempo t, y la aceleración a(t) se calcula derivando v(t) con respecto al tiempo t.
Deduzca las expresiones de la velocidad y la aceleración de la partícula y represente su
posición, velocidad y aceleración en función del tiempo para 0≤t≤7 s. utilice el comando
- 66 -

subplot para crear tres graficas en la misma ventana de gráficos, etiquete los ejes
apropiadamente con las unidades correctas.

5. La Interfaz Gráfica de Usuario (GUI).

5.1 El editor de Interfases Gráficas de usuarios (GUI).
Una interfase gráfica es el vinculo entre el usuario y un programa computacional,
constituida generalmente por un conjunto de comandos o menús, instrumentos y
métodos por medio de los cuales el usuario se comunica con el programa durante las
operaciones que se desean realizar, facilitando la entrada y salida de datos e
información.

Ejemplos de interfases gráficas son las ventanas de Word, Excel, la ventana de Matlab,
entre otras.

Existen diferentes lenguajes de programación que permiten crear GUIs tales como
Visual C, Visual Basic, TK y Matlab, entre otros muchos.


5.2 Objetos y Propiedades disponibles para las GUI.
La forma de implementar las GUI con Matlab es crear los objetos y definir las acciones
que cada una va a realizar. Al usar GUIDE para crear un GUI obtendremos dos
archivos:
Un archivo FIG con la
descripción de los
componentes que
contiene la interfase y.
Un archivo M que
contiene las funciones
y los controles del GUI
así como el callback.

Un callback se define
como la acción que
lleva a cabo un objeto
de la GUI cuando el
usuario lo active.
Suponga que en una
ventana existe un
botón que al
presionarlo ejecutará
una serie de
instrucciones, a ese
conjunto de
instrucciones se le conoce como la función callback.

Para crear una GUI se usa GUIDE, ya sea escribiendo guide en la ventana de
comandos o ejecutando desde el menú principal File-New-GUI.
- 67 -


Posteriormente se mostrará una ventana con opciones parea la creación de GUI o si se
desea abrir una ya existente.

En la parte superior se muestran los
menús y opciones de GUIDE. En la
parte izquierda los diferentes controles
y en la parte central el área de diseño
donde se irán poniendo los controles a
usar.
En la parte superior también se
encuentra la barra de herramientas
que contiene entre otras: Alineación de
objetos, Editor de menú, Editor del
orden del tabulador, Editor de archivos
M, Inspector de propiedades,
Navegador de objetos y Activación de
GUI.


se puede hacer que los controles aparezcan con su nombre
mediante el menú File-Preferences-Guide y seleccionando Show
names in component palette.

Para ver las propiedades de un
control primero se crea este,
seleccionándolo y arrastrándolo
a donde se desea que quede
colocado, y luego se activa el
inspector de propiedades
(situados sobre el control creado
se da clic al botón derecho del
mouse y se selecciona Property
Inspector). Apareciendo la
ventana de propiedades.

Siendo las más usadas:
BackgroundColor. Cambia el
color del fondo del control.
Callback. Le dice al control que
hacer cuando este se active.
Enable. Activa o desactiva un
control.
String. Es el texto que se
muestra en el control.
Tag. Identifica el control.


- 68 -




5.3 Ejemplos de GUI.

Hola Mundo
Crear una nueva figura (GUI) y
agregar un Static Text y un Push
Button y guardarla como
HolaMundo.fig; la extensión fig la
da Matlab automáticamente.

Después de guardar el archivo,
GUIDE automáticamente mostrara
una ventana nueva con el código del
archivo HolaMundo.m generado por
GUIDE.

En la ventana de GUIDE seleccionar
el Static Text y activar el inspector
de Propiedades, modificar la
propiedad String por Hola Mundo,
repetir la misma operación para el
Push Button en la propiedad String
escribir Salir

Editar el callback del botón Salir
para que al ser activado cierre la
ventana. Para hacer esto presionar
el botón Salir con el botón derecho
del mouse y seleccionar View
Callback-Callback, se mostrara el editor de funciones del archivo HolaMundo.m donde
se escribirá la instrucción:

close (gcbf)

Lo cual indica que se cerrara una figura de tipo gráfico.
A continuación se vuelve a guardar el archivo, se activa
la figura con la herramienta activación de GUI y se
mostrara la salida.








- 69 -


Convertir Temperaturas
Permite convertir entre las escalas de temperatura Celsius-kelvin-Fahrenheit. Ejecutar
un nuevo GUIDE y colocar cuatro StaticText dándoles el tamaño indicado.

Modificar a cada una la propiedad String escribiendo lo siguiente:
Calculador de Temperaturas
Celsius
Kelvin
Fahrenheit

Debajo de las etiquetas Celsius, Kelvin, Fahrenheit.

Agregar tres Edit Text, modificarles la propiedad String para que queden en blanco,
modificarles la propiedad Tag a Celsius, kelvin y Fahrenheit, respectivamente.

Y debajo de estos, cuatro Push Button, cambiándoles la propiedad String a Calcula
para los tres primeros y a Salir para el último. Cambiarles también la propiedad Tag a
Boton_Celsius, Boton_Kelvin y Boton_Fahrenheit, respectivamente, y para el botón
Salir cambiar su propiedad Tag a Boton_Salir

Una vez realizado lo anterior guardar la interfase con File-Save As, y ponerle el nombre
de conv_temp, esto abrirá una nueva ventana del editor en donde se pondrás el código
necesario. Ahora se tienen dos archivos: conv_temp.fig y conv_temp.m
























- 70 -



Agregar código al botón Salir, seleccionar la opción callback del botón y escribir

close(gcbf)



En el control de Calcula que está debajo de Celsius poner el código para convertir de
Celsius a kelvin y Fahrenheit, de acuerdo al siguiente algoritmo:
o Recibir el dato de Celsius
o Realizar conversión de Celsius a Kelvin
o Realizar conversión de Celsius a Fahrenheit
o Mostrar resultados

Para esto seleccionar la opción callback del botón Calcula y añadir el código siguiente:





En el control de Calcula que está debajo de Kelvin poner el código para convertir de
kelvin a Celsius y Fahrenheit.
Seleccionar la opción callback del botón Calcula y añadir el código siguiente:
- 71 -




En el control de Calcula que está debajo de Fahrenheit poner el código para convertir
de Fahrenheit a kelvin y Celsius.
Seleccionar la opción callback del botón Calcula y añadir el código siguiente:



Guardar nuevamente el archivo, y ahora se puede ejecutar.



- 72 -

5.4 Planeación y desarrollo de GUI.

Antes de empezar a programar es imprescindible hablar con el usuario final de la
GUI. Es importante entender cuáles son las necesidades exactas que tienen que ser
cubiertas por la aplicación. Para ello es necesario entender el tipo de datos y
variables que son introducidas por el usuario, así como las excepciones que puedan
producirse, los casos que ocurren pocas veces pero que hay que tener en cuenta,
etc. También es necesario saber cómo quiere el usuario que se presenten los datos;
si se necesitan gráficos o tablas, si va a imprimir, o cómo va a guardar los
resultados, dónde se van a guardar y en qué formato.

Para diseñar correctamente una GUI, lo mejor es hacer un bosquejo a papel y lápiz.
Presentar al usuario para su discusión y corrección y así mejorarlo.

De esta manera se consigue que no haya errores u omisiones y evita que después
de haber avanzado en el trabajo sea necesaria la corrección de él, con lo cual
retardaría la entrega y encarecería el proyecto.

Las GUIs tienen que diseñarse de modo que los botones estén donde el usuario los
requiere. Si nuestra GUI tiene varias páginas distintas y en cada una de ellas hay un
botón que dice “Guardar” es conveniente que ese botón esté localizado en el mismo
sitio siempre.

Una vez que se tiene claro qué objetos tendrá la GUI, gráficos, textos, radio buttons,
check boxes, edición de texto, entrada de valores, lectura de matrices, etc., y una
vez que se tenga claro de qué forma aparecerán en la interfaz (el layout) es
necesario hacer un programa de tipo script que tenga la misma funcionalidad que la
GUI que se quiere programar. Antes de incorporar el programa a la GUI, es
necesario hacer todo tipo de pruebas con él hasta estar completamente seguros de
que el programa que se va a incorporar en la GUI es el programa deseado.