Está en la página 1de 73

TEMARIO

1. Que es Matlab y su entorno 1


1.1. Objetivos y uso del Matlab 1
1.2. Ejemplos de aplicacin 1
1.3. Elementos del entorno grfico de Matlab 2
2. Operaciones y Funciones Bsicas. 3
2.1. Manejo de sesiones de trabajo 3
2.2. Variables: Tipos y asignacin de valores 4
2.3. Operaciones bsicas del lgebra matricial 7
2.4. Funciones de Matlab 10
2.5. Ejemplos 13
2.6. Problemas 17
3. Programacin y Archivos m 24
3.1. El editor de archivos m 24
3.2. Manejo de archivos m y elementos bsicos de programacin 26
3.3. Estructuras de control 32
3.4. Aplicaciones 43
4. Graficacin 50
4.1. Elementos de los grficos de Matlab 50
4.2. Generacin de grficos 2D 50
4.3. Edicin de atributos de los grficos 56
4.4. Grabar y exportar 62
4.5. Introduccin a grficos 3D 62
5. La Interfaz Grfica de Usuario (GUI) 66
5.1. El editor de Interfases Grficas de Usuarios (GUI) 66
5.2. Objetos y propiedades disponibles para las GUI 66
5.3. Ejemplos de GUI 68
5.4. Planeacin 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 clculos numricos con vectores y matrices.
Como caso particular puede tambin trabajar con nmeros escalares tanto reales
como complejos, con cadenas de caracteres y con otras estructuras de informacin
ms complejas. Una de las capacidades ms atractivas es la de realizar una amplia
variedad de grficos en dos y tres dimensiones. MATLAB tiene tambin un lenguaje de
programacin propio.

MATLAB es un gran programa de clculo tcnico y cientfico. Para ciertas operaciones
es muy rpido, cuando puede ejecutar sus funciones en cdigo nativo con los tamaos
ms adecuados para aprovechar sus capacidades de vectorizacin. En otras
aplicaciones resulta bastante ms lento que el cdigo equivalente desarrollado en
C/C++ o Fortran.

En cualquier caso, el lenguaje de programacin de MATLAB siempre es una magnfica
herramienta de alto nivel para desarrollar aplicaciones tcnicas, fcil 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 cdigo bsico y de varias libreras especializadas (toolboxes).
En estos apuntes se har referencia exclusiva al cdigo bsico.

MATLAB se puede arrancar como cualquier otra aplicacin 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
opcin Desktop/Desktop Layout/Default, en el men View. Como esta configuracin
puede ser cambiada fcilmente 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 estndar eligiendo la opcin indicada
anteriormente.


1.2 Ejemplos de aplicacin.
Matlab es un sistema general de software para matemticas y otras aplicaciones
cientficas. Es utilizado por investigadores, ingenieros y analistas, as como en el
entorno universitario. Las aplicaciones de Matlab comprenden la mayora de las reas
de la ciencia, tecnologa y negocios en donde se aplican mtodos cuantitativos.

Por ejemplo se utiliza en el Anlisis Matemtico, Algebra Lineal y Geometra; en
estadstica y sus aplicaciones en la industria incluyendo estadstica descriptiva,
estadstica matemtica y tcnicas de ajuste de modelos, anlisis de la varianza, control
de calidad y diseo de experimentos. As como en los sistemas de control y sus
aplicaciones en la ingeniera.


- 2 -

1.3 Elementos del entorno grfico de Matlab.
El entorno de trabajo de MATLAB es muy grfico e intuitivo, similar al de otras
aplicaciones profesionales de Windows.
Las componentes ms 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 mximo
nivel en la que se pueden situar (to dock) las dems 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
Grficos): para
visualizar
grficos, esta
ventana se abre automticamente cuando un comando matlab ejecuta la visualizacin
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 informacin sobre Matlab.

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

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

Workspace Window (Ventana del Espacio de Trabajo): proporciona informacin 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 bsicas.

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 operacin) 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, aadiendo 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.











Smbolos de operaciones aritmticas
Operacin Smbolo Ejemplo
Suma + 10+7
Resta - 10-7
Multiplicacin * 10*7
Divisin Derecha / 10/7
Divisin Izquierda \ 10\7 = 7/10
Exponenciacin ^ 10^7

Prioridad de operaciones:
o Primero: Parntesis. Para parntesis anidados, el ms interno es el que primero
se ejecuta.
- 4 -

o Segundo: Exponenciacin.
o Tercero: Multiplicacin y divisin (igual prioridad)
o Cuarto; Suma y resta.

2.2 Variables: Tipos y asignacin de valores.

El smbolo >> 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
programacin, pero no
requieren ningn tipo de
declaracin de variables (en
una primera aproximacin).

Las operaciones se realizan
siempre en aritmtica de
coma flotante de doble
precisin.

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

Si se utiliza el smbolo %, a
partir de all se considera
que la lnea es un
comentario.

Para poder realizar
operaciones con nmeros
complejos, MATLAB tiene
reservada la letra i para la
unidad imaginaria. Esto es
una preasignacin de la
variable i, que no est bloqueada de ningn modo.
- 5 -

MATLAB distingue entre maysculas y minsculas, razn 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 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, guin,...).

Conceptos Bsicos

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 funcin de MATLAB, con la orden
help nombre_funcion
se puede consultar cualquier funcin del programa. Adems hay un men de ayuda
ms detallado en la parte superior derecha de la barra de mens.

Se interrumpe una ejecucin 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
histrico 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 sesin de trabajo. Con diary off y diary on
desactivamos y activamos la grabacin en el fichero.

who indica qu variables se estn utilizando.
whos da una informacin ms amplia sobre el tamao y tipo de variable.


Algunas variables especiales:

pi es el nmero .

eps es el mquina, es decir, el nmero positivo ms pequeo tal que 1 + 1 en
la unidad de coma flotante del ordenador.
>> eps
ans =
2.2204e-016

inf nmero infinito
NaN (notanumber) es una magnitud no numrica y se obtiene, por ejemplo, como
resultado de indeterminaciones matemticas del tipo (0/0) (-):
- 6 -


realmin y realmax son los nmeros reales positivos, ms pequeo y ms grande
respectivamente, que se pueden utilizar.


MATLAB no tiene aritmtica entera incorporada. Las operaciones con enteros son
realizadas exactamente mientras ocurran dentro de la precisin mquina (hasta unas
dieciseis cifras). An as, MATLAB reconoce en cierto modo que se trata de nmeros
enteros y devuelve los resultados como si estuviera realizando aritmtica entera.


En general MATLAB trabaja en aritmtica de
coma flotante de doble precisin. El usuario
elige el formato de salida. Algunos formatos:

format short es el formato por defecto; punto
fijo y cuatro dgitos decimales

format short e notacin cientfica con cuatro
dgitos decimales

format long punto fijo y catorce dgitos
decimales

format long e notacin cientfica con quince
dgitos decimales

format rat aproximaciones al nmero racional
ms cercano.



















- 7 -

2.3 Operaciones bsicas del lgebra matricial.
Por defecto, todas las variables en MATLAB se tratan como arrays con dos ndices,
esto es, como matrices. No obstante, es ms 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
filosofa matricial
de MATLAB.
















- 8 -

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

Tambin
se pueden
separar los
elementos
de las filas
con
comas.

Cada
elemento
de una
matriz se
reconoce
por dos
ndices.

















- 9 -

Listas implcitas
Las listas implcitas son listas de nmeros en las que se especifica el primer y ltimo
elementos y el incremento entre cada elemento de la lista. Su empleo es muy comn en
MATLAB, tanto para desarrollo de las capacidades grficas como en cualquier nivel de
programacin. El resultado es siempre un vector fila.



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


2.4 Funciones de matlab

Funciones matemticas elementales.

Funciones
trigonom-
tricas.















- 11 -




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

En el caso de matrices
cuadradas exp(A) y sin(A) no
son las funciones analticas
exponencial y seno ya que
ests funciones de MATLAB
actan elemento a elemento.
Por la misma razn
sqrt(A)*sqrt(A) no es A.








Funciones de redondeo.



- 12 -


Vectorizacin de
operaciones
aritmticas
El producto es, por
defecto, la operacin
de producto de
matrices. De la misma
manera, las potencias
de una matriz son los
productos repetidos de
una matriz por s
misma. El smbolo de
divisin tiene un
significado ms
complejo, relacionado
con el producto por la
inversa del
denominador.

Para realizar productos
y divisiones elemento a
elemento (operaciones
vectorizadas), hay que
emplear los
smbolos .* 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 trigonomtrica
Sea la siguiente identidad trigonomtrica: cos
2
x
2
=
tanx+scn x
2tanx


Verifique que dicha identidad es correcta calculando ambos miembros de la ecuacin,
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
cmara que tiene una temperatura constante T
s
. Entonces, el objeto experimenta un
cambio de temperatura que se corresponde con la ecuacin: 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 120F, se introduce en un refrigerador
que tiene en su interior una temperatura de 38F. Calcular, redondeando el resultado al
grado ms prximo, la temperatura de la lata despus de 3 horas. Considerar k=0.45.



- 14 -

3. Creacin 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. Creacin 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. Manipulacin 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. Resolucin 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 friccin (procesamiento de arrays elemento a elemento)
El coeficiente de friccin se puede calcular experimentalmente midiendo la fuerza F
requerida para mover una masa m. a partir de estos parmetros, el coeficiente de
friccin 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 friccin 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 trigonomtricas:
- 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 trigonomtricas:
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 = n7. Utilice estas variables para
demostrar que la siguiente identidad trigonomtrica es correcta.
cos -cos [ = 2 scn
1
2
(o -[)scn
1
2
([ -o)

11. Cuando se suman fracciones debe calcularse el mnimo comn mltiplo para
poder realizar la operacin correctamente. Por ejemplo en minimo comn
mltiplo de y 1/10 es 20. Encuentre una funcin apropiada que calcule el
mnimo comn mltiplo de dos nmeros, por ejemplo demuestre que:
a) El minimo comn mltiplo de 4 y 10 es 20
b) El minimo comn mltiplo 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 energa emitida por el terremoto y E
0
=10
4.4
julios es una constante
(energa de un terremoto ms pequeo de referencia). Determine cuantas veces
ms energa 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 transposicin 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 smbolo de dos puntos para crear un nuevo vector, llamado Asegundo, que
tenga ocho elementos. Los primeros cuatro elementos sern los primeros cuatro
elementos del vector Aprimero, y los cuatro ltimos sern los cuatro ltimos
elementos del vector Aprimero.

20. Cree una matriz como la que se muestra utilizando la notacin 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 sptima 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 sptima 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 continuacin, 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 nmeros: 1 2 3 4 5
6 7, y la segunda fila contenga: 8 9 10 11 12 13 14, la tercera fila contenga los
nmeros 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 tambin una
matriz B de 2x2 donde todos los elementos sean 5. A continuacin, aada
nuevos elementos a la matriz A a base de aadir 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 funcin 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 despus un vector y, utilizando las operaciones elemento a
elemento para el clculo.

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 clculo 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. Despus 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 numrica
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 funcin sum para sumar los trminos 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 trmino 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 funcin sum para sumar los
trminos 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 multiplicacin cumple la propiedad distributiva.
d) Calcule A(B+C) y AB+AC para demostrar que la multiplicacin 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 ms prximo.

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. Despus, tome el tiempo de
vuelo t
f
de ese proyectil y divdalo 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. Programacin y Archivos m.

3.1 El editor de archivos m.

Las funciones y scripts no son ms que archivos de texto ASCII, con la extensin *.m,
que contienen definicin 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
depuracin, eliminar errores al
programa).

Tambin Matlab permite que
utilicemos cualquier editor
(edit de DOS, Word, Notepad,
etc.), ya que los archivos son
slo de texto. El grfico
muestra la ventana principal
del Editor/Debugger.

Puede apreciarse que aun no
se ha introducido cdigo
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 adems indica que las comillas o parntesis que se abren se cierren
correctamente.

A continuacin 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 funcin rand(n) retorna una matriz cuadrada nxn, cuyos elementos son
nmeros aleatorios entre 0 y 1, la funcin magic(n) tambin 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 funcin inv(M) retorna la
matriz inversa de M.

Es importante la utilizacin 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
ejecucin de este archivo de
comandos controlado con el
Debugger. Dicha ejecucin
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 ejecucin del programa).

La flecha amarilla indica la sentencia en que est detenida la ejecucin; 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 botn significa lo siguiente.

Set/Clear Breakpoint. Coloca o borra un breakpoint en la lnea 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
lnea.
Step In. Avanzar un paso, y si en ese paso hay una llamada a una funcin cuyo
fichero *.m est accesible, entra en dicha funcin.
Step Out. Salir de la funcin que se est ejecutando en ese momento.
Continue. Continuar la ejecucin hasta el siguiente breakpoint.
Exit Debug Mode. Terminar la ejecucin 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 bsicos de programacin.

Cmo accedemos al editor?
Desde el Command Window: >> edit;
Desde el men File / New / M-file.

Cmo se ejecuta un script?
Sencillamente se debe introducir su nombre en la lnea de comandos. O mediante el
editor.

Cmo se ejecuta una funcin?
De igual manera que un script pero sus argumentos deben pasarse entre parntesis 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 clculos dentro del
fichero deben tener valores asignados previamente. La asignacin de estos valores se
puede realizar de tres formas, dependiendo de dnde y cmo se haya definido la
variable.







- 27 -


Input: Esta funcin permite imprimir un mensaje en la lnea de comandos y recuperar
como valor de retorno un valor numrico o el resultado de una expresin tecleada.
el comando input tambin 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 opcin de comando input que permite concretar que los caracteres
sern introducidos como cadena. Este comando tiene la siguiente forma:
nombre_variable=input(Mensaje,s)
- 28 -

Comandos de Salida:

Comando Disp:
Esta funcin 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
numricos provenientes de clculos o variables predefinidas en la misma lnea.
Adems, el formato de los nmeros 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 solucin. 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 solucin.
Por favor, compruebe los datos de entrada>>


Utilizacin del comando fprintf para visualizar datos y texto juntos:

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

o el smbolo % marca el lugar donde se insertar el numero dentro del texto.
o El signo (opcional), bandera, si es (menos) Justificacin izquierda del numero
dentro del campo, si es + (mas) Visualiza el carcter del signo(+ o -) delante del
numero, si es 0(cero) Aade ceros si el numero es ms pequeo que el campo.
o La especificacin del ancho y precisin del campo (5 en el ejemplo) es opcional. El
primer nmero es el ancho del campo, el cual nos indica el menor nmero de
dgitos en la visualizacin. Si el numero que se visualiza es menor que el ancho del
campo, se aadirn ceros o espacios delante del nmero en cuestin. El segundo
nmero (2 en el ejemplo) especifica el nmero de dgitos que se mostraran a la
derecha del punto decimal.
o El formato de conversin (f en el ejemplo), es obligatorio. A continuacin se
muestran los caracteres de conversin ms utilizados:

e Notacin exponencial en minsculas (ej. 1.709098e+001)
E Notacin exponencial en maysculas (ej. 1.709098E+001)
f Notacin de punto fijo (ej. 17.090980)
g Representacin en formato corto de las notaciones e o f.
G Representacin en formato corto de las notaciones E o f
i Entero



- 30 -

Ejemplo de cmo usar el comando fprintf:

















- 31 -


- 32 -

3.3 Estructuras de Control

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

if condicion
sentencias
end

La condicin no va encerrada entre parntesis.

Existe tambin la "bifurcacin mltiple", 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 % opcin por defecto para cuando no se cumplan las otras condiciones.
bloque 4
end

El uso de else es opcional.

Operadores relacionales Operadores lgicos
Igualdad == and & (ampersand)
Desigualdad ~= or | (pipe)
Menor < not ~ (tilde)
Mayor > xor o exclusivo
Menor o igual <= any True si algn 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 funcin anloga 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 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 (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 nmero predeterminado de veces.
La siguiente construccin 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 nmero positivo: ');
- 36 -

















































- 37 -

























Serie Numrica: Calcular la suma de los primeros n trminos de la siguiente serie
numrica:
(-1)
k
k
(2)
k
n
k=1

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




Modificacin 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 expresin vectorial o matricial. Las sentencias se
siguen ejecutando mientras haya elementos distintos de cero en condicion, es decir,
mientras haya algn 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 ms rpida.

Las funciones permiten definir funciones enteramente anlogas 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 lnea de comentarios conforma el help.

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


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

- 41 -


Construccin de funciones:
La primera lnea de un archivo llamado ejemplo.m que define una funcin tiene la
forma:

function [lista de valores de retorno] = ejemplo (lista de argumentos)
donde ejemplo es el nombre de la funcin. Entre corchetes y separados por coma van
los valores de retorno (siempre que haya ms de uno), y entre parntesis tambin
separados por comas los argumentos. Puede haber funciones sin valores de retorno y
tambin sin argumentos. Si no hay valores de retorno se omiten los corchetes. Y el
signo igual (=); si slo hay un valor de retorno no hacen falta poner corchetes. Tampoco
hace falta poner parntesis si no hay argumentos.

Las variables definidas dentro de una funcin 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 funcin 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 funcin, los valores de retorno deben ser calculados en algn momento (no
hay sentencia return). Se utiliza return slo para salir forzosamente del cuerpo de la
funcin.


Ejemplos de funciones:




- 42 -





Escribir un archivo de funcin (llamado ecuacin) para la funcin (x) =
x
4
3x+5
(x
2
+1)
2
. La
entrada de la funcin es x y la salida f(x). Escribir la funcin tal que x sea un vector.
Utilizar la funcin 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 inters anual. Esta persona planea sacar dinero de su
cuenta una vez al ao. Empieza sacando 25,000 pesos despus del primer ao.
Posteriormente en el futuro, incrementara la cantidad retirada en funcin de la tasa
inflacin anual. Por ejemplo, si la inflacin es del 3%, retirara 25750 pesos al final del
segundo ao. Calcular el nmero de aos que esta persona tardara en sacar todo el
dinero de su cuenta. Suponiendo para ello una inflacin 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 aos.


- 44 -



Generacin de nmeros para el sorteo de la lotera.
En un sorteo de lotera el jugador debe elegir varios nmeros de entre una lista dada.
Escribir una funcin que genere una lista n de nmeros enteros, distribuidos
uniformemente entre un rango a y b. todos los nmeros seleccionados de la lista deben
ser distintos.

a) Utilizar la lista para generar una lista de 6 nmeros que varen entre 1 y 49
b) Utilizar la lista para generar una lista de 8 nmeros que varen entre 60 y 75
c) Utilizar la lista para generar una lista de 9 nmeros que varen entre -15 y 15



- 45 -



Problemas:
1.- la temperatura mxima 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 nmero de das que estuvo la temperatura de cada ciudad por debajo de la
media.
c) El nmero de das, y a que das de mes corresponden, en los cuales la
temperatura fue igual en ambas ciudades.
d) El nmero de das, y a que das del mes corresponden, en los cuales la
temperatura de ambas ciudades se mantuvo por encima de 32 F.

2.- represente la siguiente funcin 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 funcin f(x) para utilizarla posteriormente en un archivo script

3.- escriba un programa script que calcule las races reales de una funcin cuadrtica
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 races de la
ecuacin, el programa calculara el discriminante D=b2-4ac

Si D>0, el programa visualizara un mensaje del tipo: La ecuacin tiene dos races, y
los valores de las races se visualizaran en la lnea siguiente.
Si D=0, el programa visualizara un mensaje del tipo: La ecuacin tiene una raz, y el
valor de la raz se visualizara en la lnea siguiente.
Si D<0, el programa visualizara un mensaje del tipo: La ecuacin no tiene races
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 dimensin 4x7, en la cual el valor de cada
elemento sea la suma de sus ndices (el nmero de la fila y el nmero 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 dimensin 5x8, en
la cual el valor de cada elemento sea igual a la raz 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
trminos 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 nmero 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 nmero que cumpla las condiciones anteriores.
Finalmente el programa visualizara el mensaje: El nmero pedido es: , y visualizara
seguidamente el nmero calculado.
- 47 -


9.- escriba una funcin que ordene los elementos de un vector de cualquier longitud, de
mayor a menor. Utilice la siguiente lnea de definicin de funcin: y=ordenar(x). la
entrada de la funcin 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
funcin predefinida Sort para este ejercicio. Cree su propia funcin y prubela con un
vector de 14 elementos (enteros) generados aleatoriamente y distribuidos entre -30 y
30.utilice la funcin rand para generar el vector inicial.

10.- escriba una funcin que ordene los elementos de una matriz. Utilice la siguiente
lnea de definicin de funcin: B = ordenarmatriz(A), donde A ser una matriz de
cualquier tamao, y B ser otra matriz del mismo tamao con los elementos de A
ordenados de forma ascendente, fila por fila. De esta forma, los elementos B(1,1) y
B(m,n) sern respectivamente, los elementos menor y mayor de la matriz ordenada.
pruebe posteriormente esta funcin en una matriz de 4x7, con nmeros enteros
generados aleatoriamente y distribuidos entre -30 y 30. Utilice la funcin rand para
generar la matriz inicial.

11.- escriba un programa que calcule el costo de enviar un paquete en funcin 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 fraccin de libra, a partir
de las 2 libras de peso
$55 + $3 adicionales por cada
libra o fraccin de libra, a partir
de las 10 libras de peso
Aire $ 30 $30 + $5 adicionales por cada
libra o fraccin de libra, a partir
de las 2 libras de peso
$102 + $6 adicionales por cada
libra o fraccin de libra, a partir
de las 10 libras de peso
Nocturno $ 180 $180 + $60 adicionales por
cada libra o fraccin de libra, a
partir de las 2 libras de peso
No se realizarn entregas para
paquetes que pesen ms 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 ms 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 funcin con dos argumentos de entrada y dos de salida. La funcin
debe calcular la altura en pulgadas y la masa en libras de una persona a partir de su
altura en centmetros y de su peso en kilogramos. Utilice la siguiente definicin de
funcin para el problema: [in,lb]=SIaSTi(cm,kg). Los argumentos de entrada son la
altura en centmetros y el peso en kilogramos, y los argumentos de salida son la altura
en pulgadas y la masa en libras. Posteriormente utilice esta funcin 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 funcin para la siguiente funcin matemtica:

y(x)=0.9x
4
-12x
2
-5x
la entrada de la funcin ser x, y la salida ser y, escriba la funcin de forma que x x
pueda ser un vector, y utilcela para:
a) Calcular y(-3) e y(5)
b) Representar grficamente la funcin y(x) para -4x4

15.- el valor P de una cuenta de ahorros, con un capital inicial P
0
y una tasa de inters
anual r (en %) despus de t aos, viene dado por:

P = P
0
[1 +
r
1uu

t


Escriba una funcin que calcule el valor futuro de una cuenta de ahorros. Utilice para
ello la siguiente lnea de definicin de funcin: P=saval(PO,r,t). las entradas de la
funcin sern el capital inicial, la tasa de inters y el nmero de aos. La salida ser el
valor de la cuenta a partir de los datos especificados en la entrada. Utilice
posteriormente esta funcin para calcular el valor de un capital inicial de 10000 pesos a
un inters anual del 6%, despus de 13 aos.

16.- escriba una funcin que convierta las unidades de un par de torsin (fuerza que
causa la rotacin de un objeto) de libras-pulgada a newton-metro. Utilice la siguiente
lnea de definicin para la funcin: 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 funcin para convertir 500 libras-pulgada a newton-metro.
- 49 -


17.- escriba una funcin que calcule la calificacin final de un estudiante a partir de la
calificacin de su examen final, sus dos parciales y de los cinco trabajos realizados
durante el curso. Los exmenes parciales puntan de 0 a 100, y cada uno es un 20%
de la calificacin final. El examen final tiene la misma escala de puntuacin, y es un
40% de la calificacin final. Los trabajos, sin embargo, puntan de 0 a 10, y todos ellos
en conjunto representan un 20% de la calificacin final.
La funcin debe tener la siguiente definicin: g=calfinales(R), donde la entrada ser una
matriz R que contenga en cada fila las calificaciones de cada estudiante. Adems, por
cada fila, se tendrn 8 columnas que representaran las calificaciones de los trabajos
(las cinco primeras), la calificacin de los dos exmenes parciales (las dos siguientes) y
la calificacin del examen final (la ltima columna) de cada estudiante. La salida de la
funcin ser un vector columna g con la calificacin final del curso. Cada fila de este
vector ser la calificacin final del estudiante cuyas calificaciones se relacionan con la
correspondiente fila de la matriz R.
La funcin debe usarse para calcular las calificaciones finales de cualquier nmero de
estudiantes. Para el caso de un solo estudiante, la matriz R tendr una sola fila. Aplique
est funcin en los siguientes casos:
a) Calcular la calificacin 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 funcin 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 funcin que calcule Req. Utilice la siguiente definicin: 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 funcin para calcular la
resistencia equivalente de las siguientes resistencias conectadas en paralelo: 50, 75,
300, 60, 500, 180, 200



- 50 -


4. Graficacin.

4.1 Elementos de los grficos de Matlab.
Con los comandos de Matlab se pueden crear distintos tipos de grficos: estndares
con ejes lineales, logartmicos o semilogartmicos, de barras y escaleras, polares, de
malla y de superficies de contorno tridimensional, etc. Estos grficos se pueden
personalizar para que tengan la apariencia deseada. As, se puede establecer el tipo,
el color y el grosor de lnea; se pueden aadir lneas de referencia y cuadriculas; y
tambin ttulos y comentarios. . Adems se pueden superponer varios grficos sobre un
mismo sistema de ejes coordenados, o poner varios grficos en una misma pgina.
Cuando un grafico tiene varios tipos de datos, tambin se pueden aadir leyendas.


4.2 Generacin de grficos 2D

4.2.1 El comando Plot
Se utiliza para crear grficos 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 representacin grafica de los
puntos (1; 1), (2; 4) y (3; 9) unidos por una
lnea recta.

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

Entonces habra pintado los puntos x; y
como lneas punteadas rojas.


Para personalizar los grficos, el comando
plot admite en su sintaxis otros argumentos
que se pueden utilizar para definir el color y
estilo de lneas y marcadores.

Plot (x,y, especificadores de lnea, 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 lnea
Son opcionales y se pueden utilizar para definir el color y estilo de lnea, as como el
tipo de marcadores:

Especificador Estilo de lnea Especificador Color de lnea
Lnea continua r rojo
- Lnea continua y amarillo
-- Lnea de guiones m magenta
: Lnea punteada c turquesa
-. Lnea de guiones y puntos g verde
+ Cruces b azul
* asteriscos w blanco
. Puntos k negro
o Crculos
x Equis


Introduciendo una a una en la ventana de comandos las siguientes ordenes obtener la
representacin grafica de la funcin 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 operacin .*?
>> plot(x,y) % genera la grfica
>> axis([0,10,-1,1]) % La x valora en [0; 10] y la y en [-1; 1]
>> xlabel('eje x'), ylabel('eje y') % Rtulos en los ejes x; y
>> title('La Primer Grafica') %Titulo de la grafica
>> grid % Sita una rejilla en la grafica
>> text(4,-0.1,'Minimo') %Sita 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 lnea, el tamao de los
marcadores, as como los colores de relleno y del borde del marcador.
propiedad Descripcin Posible valor de la propiedad
linewidth Especifica el grosor de la lnea Un nmero representado en
unidades de puntos (por defecto 0.5)
markersize Especifica el tamao de las marcas Un nmero representado en
unidades de puntos
markeredgecolor Especifica el color del marcador, o
el color del borde de la lnea 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 grfico en el cual una lnea slida de color magenta une puntos que se
representan mediante marcadores en forma crculo. El grosor de lnea es de 2 puntos, y
el tamao de los crculos utilizados como marcadores es de 12 puntos. Los marcadores
(crculos) tienen bordes de color verde, y amarillo como color relleno.

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


- 53 -

4.2.4 Generacin de grficos a partir de datos dados

Ventas de una compaa desde el ao 1988 a 1994
Ao 1988 1989 1990 1991 1992 1993 1994
Ventas (millones) 8 12 20 22 18 24 27





- 54 -

4.2.5 Generacin de grficos a partir de funciones
Representar grficamente la funcin y = S.S
-0.5x
cos (6x) en el intervalo -2 x 4.



4.2.6 El comando fplot
Representa grficamente una funcin de la forma y=f(x) entre unos lmites
especificados por el usuario. El comando tiene la siguiente sintaxis:

Fplot (funcin, limites, especificadores de lnea)

Representar una funcin 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 Representacin grfica de varias funciones a la vez
La representacin 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 funcin 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
grfico.





- 56 -

Utilizando los comandos hold on y hold off




Utilizando el comando line


4.3 Edicin de atributos de los grficos.
Los grficos se pueden formatear o bien utilizando comandos matlab a continuacin de
los comandos plot o fplot, o bien utilizando el editor de grficos de la ventana de
grficos.
El primer mtodo 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 grfico con formato. Por otra parte, el formato que se aplica mediante el
editor de grficos de la ventana de grficos solo se mantiene para un grfico en
concreto, y se tendr que volver a aplicar la prxima vez que se cree el grfico.

4.3.1 Formateado de una representacin grfica mediante comandos
Los comandos de formato se introducen despus de aquellos que crean o visualizan
grficos: 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:
Aade un ttulo (principal) al grfico en la parte superior del mismo. Su sintaxis es:
title(texto)
- 57 -


El comando text:
Permite situar una etiqueta de texto dentro del grfico, 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
representacin grfica, basndose en los valores mximo y mnimo de los valores
posibles que toman x e y. El comando axis permite cambiar el rango de los ejes, as
como su apariencia. A continuacin se muestran algunos de los posibles formatos que
acepta el comando axis.

axis([xmin,xmax,ymin,ymax]) establece los lmites de ambos ejes, x e y, entre los
valores mximos y mnimos.
axis equal Establece la misma escala en ambos ejes.
axis square Establece la regin de los ejes en un cuadrado.
axis tight Establece los lmites de los ejes en funcin del rango de los datos.

El comando grid:
grid on Aade una cuadrcula a la representacin grfica.
grid off Elimina la cuadrcula de la representacin grfica.

Ejemplo:


- 58 -




4.3.2 Formateado de una representacin grfica mediante el editor grfico
La apariencia de un grfico generado en la ventana de grficos se puede modificar de
forma interactiva pulsando con el ratn sobre el grfico y/o utilizando los mens. El
editor grfico se puede utilizar para aadir elementos nuevos o componentes en una
representacin grfica, o para modificar el formato de los elementos previamente
introducidos mediante comandos.
4.3.3 Grficos con ejes logartmicos
Los comandos utilizados en matlab para representar grficos con ejes logartmicos son:

Ejemplo:
Graficar la funcin y = 2
(-0.2x+10)
poro u.1 x 6u utilizando distintas combinaciones
de escalas logartmicas y lineales.

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


- 59 -




4.3.4 Grficos varios
Grfico de barras
verticales
Formato de la funcin:
bar(x,y)
- 60 -

Grfico de barras
horizontales
Formato de la funcin:
barh(x,y)

Grfico de escaleras
Formato de la funcin:
stairs(x,y)

Grfico de tallo o
lneas verticales
Formato de la funcin:
stem(x,y)

Grfico circular
Formato de la funcin
Pie(x)

Ms de un grfico en la misma pgina.
Con la orden subplot podemos representar una matriz con mxn subgrficas en una sola
figura; la sintaxis es:
- 61 -


subplot(m,n,k)

Donde k es un nmero natural que
indica el orden en que aparece la
grfica: la primera, la segunda, ...
Como ejemplo ejecutamos el
siguiente listado:

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


Graficas de curvas
La representacin 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
Grfica 2,2,1
t
c
o
s
(
t
)
0 10 20 30 40
-40
-20
0
20
40
Grfica 2,2,2
t
t
.
*
c
o
s
(
t
)
0 10 20 30 40
0
0.2
0.4
0.6
0.8
1
Grfica 2,2,3
t
c
o
s
(
t
)
.
2
0 10 20 30 40
0
500
1000
1500
Grfica 2,2,4
t
t
.
2
.
*
c
o
s
(
t
)
.
2
- 62 -

4.4 Grabar y Exportar.

Una vez completado un grfico, puede ser almacenado de dos formas:
o Guardarlo con un formato que permita abrirlo en una nueva sesin de
MATLAB, abriendo una ventana de dilogo 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
extensin deseada en la ventana de dilogo o escribiendo print
grafico.ext en la ventana de comandos o en el Editor/Debugger.


4.5 Introduccin a grficos 3D
Los grficos tridimensionales proporcionan una manera prctica de representar datos
de ms de dos variables. Matlab proporciona distintas opciones y funciones destinadas
a la representacin de grficos tridimensionales.

4.5.1 Grficos de lnea
Est constituido por una lnea que se obtiene uniendo una serie de puntos en un
espacio tridimensional. La forma ms sencilla y bsica es mediante la funcin plot3.

Plot3(x,y,z, Especificadores de lnea, propiedades, Valores)

Ejemplo:

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







- 63 -

4.5.2 Grficos de malla y superficie
Son grficos 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 grficos 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 funcin. [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 grfico. Mesh(x,y,z) o surf(x,y,z)

Tipo de grfico Grfico
Grfico de malla: mesh(x, y, z)

Grfico de superficie: surf(x, y, z)

Grfico de malla con cortina: meshz(x, y, z)

Grfico de malla con contorno: meshc(x, y, z)



- 64 -


Tipo de grfico Grfico
Grfico de superficie con contorno: surfc(x, y, z)


Grfico de superficie con alumbrado: surfl(x, y, z)

Grfico de cascada: waterfall(x, y, z)

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

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



- 65 -


Problemas:
1.- Represente dos grficos de forma separada, de la funcin f(x)=0.6x
5
-5x
3
+9x+2; uno
de los grficos debe estar en el dominio -4x4, y el otro en el dominio -2.7x2.7

2.- Represente la funcin (x) =
x
2
-x+1
x
2
+x+1
poro -1u x 1u

3.- utilice el comando fplot para representar la funcin:

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

4.- represente la funcin (x) =
1.5x
x-4
poro -1u x 1u. observe que esta funcin
posee una asntota vertical en el punto x=4. Represente la funcin mediante la creacin
de dos vectores para el dominio de x. el primer vector (llmelo x1) contendr los
elementos -10 a 3.7, y el segundo vector (llmelo x2) los elementos 4.3 hasta 10.
Adicionalmente habr que crear dos vectores y1 e y2 para los correspondientes valores
de la funcin sobre los dos vectores anteriormente creados para el dominio de x.
seguidamente represente la funcin mediante dos curvas en la misma regin grfica (y1
frente a x1, y2 frente a x2).

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

6.- represente la funcin f(x)=3xsen(x)-2x y su derivada, ambas en la misma regin
grfica, en el intervalo -2x2. Represente la funcin con una lnea solida, y su
derivada con una lnea discontinua. Aada 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 energa en julios liberada por el terremoto.
Haga un grfico de E (en ordenadas) frente a M (en abscisas) para 3M8. Utilice una
escala logartmica para E y una lineal para M. etiquete los ejes y aada un titulo al
grfico.

8.- la posicin x en funcin del tiempo t de una partcula que se mueve a lo largo de una
lnea recta viene dada por: x(t)=0.4t
3
-2t
2
-5t+13 metros.
La velocidad v(t) de la partcula se calcula mediante la derivada de x(t) con respecto al
tiempo t, y la aceleracin a(t) se calcula derivando v(t) con respecto al tiempo t.
Deduzca las expresiones de la velocidad y la aceleracin de la partcula y represente su
posicin, velocidad y aceleracin en funcin del tiempo para 0t7 s. utilice el comando
- 66 -

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

5. La Interfaz Grfica de Usuario (GUI).

5.1 El editor de Interfases Grficas de usuarios (GUI).
Una interfase grfica es el vinculo entre el usuario y un programa computacional,
constituida generalmente por un conjunto de comandos o mens, instrumentos y
mtodos 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
informacin.

Ejemplos de interfases grficas son las ventanas de Word, Excel, la ventana de Matlab,
entre otras.

Existen diferentes lenguajes de programacin 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
descripcin 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 accin que
lleva a cabo un objeto
de la GUI cuando el
usuario lo active.
Suponga que en una
ventana existe un
botn que al
presionarlo ejecutar
una serie de
instrucciones, a ese
conjunto de
instrucciones se le conoce como la funcin 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 creacin de GUI o si se
desea abrir una ya existente.

En la parte superior se muestran los
mens y opciones de GUIDE. En la
parte izquierda los diferentes controles
y en la parte central el rea de diseo
donde se irn poniendo los controles a
usar.
En la parte superior tambin se
encuentra la barra de herramientas
que contiene entre otras: Alineacin de
objetos, Editor de men, Editor del
orden del tabulador, Editor de archivos
M, Inspector de propiedades,
Navegador de objetos y Activacin 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,
seleccionndolo y arrastrndolo
a donde se desea que quede
colocado, y luego se activa el
inspector de propiedades
(situados sobre el control creado
se da clic al botn derecho del
mouse y se selecciona Property
Inspector). Apareciendo la
ventana de propiedades.

Siendo las ms 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 extensin fig la
da Matlab automticamente.

Despus de guardar el archivo,
GUIDE automticamente mostrara
una ventana nueva con el cdigo 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 operacin para el
Push Button en la propiedad String
escribir Salir

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

close (gcbf)

Lo cual indica que se cerrara una figura de tipo grfico.
A continuacin se vuelve a guardar el archivo, se activa
la figura con la herramienta activacin 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 dndoles el tamao 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, cambindoles la propiedad String a Calcula
para los tres primeros y a Salir para el ltimo. Cambiarles tambin la propiedad Tag a
Boton_Celsius, Boton_Kelvin y Boton_Fahrenheit, respectivamente, y para el botn
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 pondrs el cdigo
necesario. Ahora se tienen dos archivos: conv_temp.fig y conv_temp.m
























- 70 -



Agregar cdigo al botn Salir, seleccionar la opcin callback del botn y escribir

close(gcbf)



En el control de Calcula que est debajo de Celsius poner el cdigo para convertir de
Celsius a kelvin y Fahrenheit, de acuerdo al siguiente algoritmo:
o Recibir el dato de Celsius
o Realizar conversin de Celsius a Kelvin
o Realizar conversin de Celsius a Fahrenheit
o Mostrar resultados

Para esto seleccionar la opcin callback del botn Calcula y aadir el cdigo siguiente:





En el control de Calcula que est debajo de Kelvin poner el cdigo para convertir de
kelvin a Celsius y Fahrenheit.
Seleccionar la opcin callback del botn Calcula y aadir el cdigo siguiente:
- 71 -




En el control de Calcula que est debajo de Fahrenheit poner el cdigo para convertir
de Fahrenheit a kelvin y Celsius.
Seleccionar la opcin callback del botn Calcula y aadir el cdigo siguiente:



Guardar nuevamente el archivo, y ahora se puede ejecutar.



- 72 -

5.4 Planeacin y desarrollo de GUI.

Antes de empezar a programar es imprescindible hablar con el usuario final de la
GUI. Es importante entender cules son las necesidades exactas que tienen que ser
cubiertas por la aplicacin. 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. Tambin es necesario saber cmo quiere el usuario que se presenten los datos;
si se necesitan grficos o tablas, si va a imprimir, o cmo va a guardar los
resultados, dnde se van a guardar y en qu formato.

Para disear correctamente una GUI, lo mejor es hacer un bosquejo a papel y lpiz.
Presentar al usuario para su discusin y correccin y as mejorarlo.

De esta manera se consigue que no haya errores u omisiones y evita que despus
de haber avanzado en el trabajo sea necesaria la correccin de l, con lo cual
retardara la entrega y encarecera el proyecto.

Las GUIs tienen que disearse de modo que los botones estn donde el usuario los
requiere. Si nuestra GUI tiene varias pginas distintas y en cada una de ellas hay un
botn que dice Guardar es conveniente que ese botn est localizado en el mismo
sitio siempre.

Una vez que se tiene claro qu objetos tendr la GUI, grficos, textos, radio buttons,
check boxes, edicin de texto, entrada de valores, lectura de matrices, etc., y una
vez que se tenga claro de qu forma aparecern 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.

También podría gustarte