Beruflich Dokumente
Kultur Dokumente
FUNDAMENTOS DE
INFORMTICA
Parte 3
Programacin en Matlab
Como ya hemos visto, Matlab es un programa diseado especialmente para tratar datos
matemticos.
Entre otras aplicaciones permite la programacin, esto es, la creacin de una serie de
instrucciones que se ejecutarn cuando se las invoque.
El cdigo se guarda en archivos .M, que son interpretados cada vez que se ejecutan.
EJECUCIN ARCHIVO .M
EDITOR ARCHIVOS .M
Edit: es un editor donde podemos escribir instrucciones que no se ejecutan hasta que lo
invoquemos en la ventana principal.
Una vez abierto, tiene la siguiente presentacin:
Para crear un archivo .M nuevo basta con hacer clic sobre la representacin de una hoja
en blanco, que sirve para crear un nuevo archivo .m
Una vez escrito el programa, se guarda con el nombre deseado (siempre y cuando no sea
una function, ya que entonces hay que guardarlo con el mismo nombre) y la extensin
en que se guarda es .m
Algunos comandos muy utilizados en archivos .M son:
1. ECHO OFF
ECHO ON
Diagrama explicativo:
Condicin
S
Sentencia 1
NO
Sentencia 2
Sentencia 3
Lista de operadores de comparacin:
== (igual)
> (mayor)
~= (distinto) & (and)
< (menor)
| (or)
La primera lnea indica que si (y slo si) se cumple la condicin dada, la segunda se va
a realizar (la sentencia 1)
La tercera lnea indica que si no se cumple la condicin se realiza la sentencia 2.
El end que aparece en la cuarta lnea se utiliza para finalizar la bifurcacin.
Ejemplo 1:
Crear un programa en el que se introduzcan dos nmeros por el teclado y que nos diga
cual es el mayor.
CONDICIONES MLTIPLES
S
Condicin 1
Sentencia 1
NO
S
Condicin 2
Sentencia 2
NO
S
Condicin 3
Sentencia 3
Ejemplo 3:
Crear un programa tal que un usuario introduzca un nmero por teclado, que diga si es
entero y luego si es par o impar.
BUCLES
Ejemplo 5:
Adivina un nmero con 5 oportunidades para acertar.
Ejemplo 6:
Programar la funcin factorial de n!
En la cuarta lnea definimos factorial para que guarde los valores nuevos de cada
iteracin como la multiplicacin de los anteriores.
Funcin break: Sale del bucle ms interno que tengamos
Se repite mientras se cumpla una condicin. Una vez deje de cumplirse se sale del
bucle.
La sintaxis a utilizar en Matlab es la siguiente:
Ejemplo 7:
Crear un programa que realice lo siguiente:
Preguntar un nmero al usuario y detenerse cuando ese nmero sea mayor que 100.
A continuacin se muestra el programa y un ejemplo de su aplicacin.
Ejemplo 8:
Dada una funcin tal que:
f (t ) 3 e
t
100 , crear un programa que represente esta funcin
El disp(t) es simplemente para conocer el ltimo valor de tiempo que evala la funcin,
restringida hasta que la funcin vale 50.
Para crear la representacin grfica, basta con utilizar el comando plot de la forma
explicada en captulos anteriores despus del bucle, y usando los valores de tiempo y de
la funcin creados en el bucle.
Una vez guardado el archivo creado como ejemplo8.m se ejecuta desde la ventana
principal de Matlab y se comprueba la respuesta del programa.
Segn los comandos usados, debe dar el valor de tiempo ltimo y la representacin.
El resultado es el siguiente:
10
COMANDOS DE IMPRESIN
Cada vez que se indica en el sprintf o fprintf con %g indica que ah va el valor de las
variables. El texto que queremos como respuesta se delimita con el uso de las comillas
simples, y despus hay que indicar cuales son las variables a las que quiero hacer
referencia con el uso de %g, en este caso t y f.
11
Para crear un fichero que contenga una funcin es muy importante crear o guardar el
fichero.m con el mismo nombre de la funcin para su correcta ejecucin posterior.
Para crear una funcin, la primera lnea del editor siempre debe ser de la siguiente
forma:
As:
Se escribe function y a continuacin entre corchetes se designan los argumentos de
salida que dar la funcin. Despus del igual, se designa el nombre de la funcin (el
mismo con el que se guardar el fichero.m) seguido por los argumentos de entrada que
necesitar la funcin.
Como siempre, la creacin de funciones quedar ms clara con los ejemplos
explicativos que se incluyen a continuacin:
Ejemplo 9:
x
.
2
12
Ejemplo 10:
La funcin f ( x) e x es puede aproximar con Taylor:
T ( x)
n0
xn
n!
Escribir una funcin que utilice la serie de Taylor para aproximar la siguiente funcin:
f ( x) e x
13
En este apartado se explicarn comandos tiles para representar grficas en 3D, es decir,
funciones del tipo:
x f (t )
y g (t )
z h(t )
Ejemplo 11:
Dadas las siguientes funciones representarlas para los valores de t entre 0 y 6.
x
t sen ( 2 t )
t cos ( 2 t )
z 0.5 t
14
ESTRUCTURAS
15
Algunos comandos tiles para estructuras son los que se explican a continuacin.
SETFIELD, y GETFIELD.
Setfield: sirve para cambiar un dato concreto en una estructura que ya tenas
creada.
Hay que indicar el nombre de la estructura, el elemento, el campo, el elemento
del campo que quiero modificar y el nuevo valor a introducir.
Por ejemplo, una vez creada la estructura la estructura:
>> persona(1).pesos = [ 20 30 40],
deseo cambiar el segundo dato por un cero:
>> persona = Setfield(persona,1,pesos,2,0)
As, queda modificado el array persona, pero slo en el elemento deseado.
Getfield: extrae el campo indicado, en la forma:
Getfield (estructura, elemento, campo)
Por ejemplo, siguiendo con la estructura anterior, si se desea extraer el campo pesos:
>> Getfield (persona, 1, pesos)
>> ans
[20 0 40]
16
Ejemplo 13:
Quiero guardar un listado de Alumnos, Edad y Calificaciones en Fsica, lgebra y
Fundamentos de Informtica
Y hay que hallar:
a) Media por alumno.
b) Media de toda la clase en Fsica.
c) Alumno con mayor nota en Fsica.
Primero se crearan las diferentes estructuras:
ALUMNO (1). NOMBRE: ANTONIO
EDAD
FSICA
LGEBRA
INFORMTICA
a)
MEAN ([ALUMNO (1). FSICA, ALUMNO (1).LGEBRA, ALUMNO
(1).INFORMTICA])
Para hacer con todos los alumnos se podra hacer con un programa como el siguiente:
b)
c)
Sera:
>> MAX([alumno.fsica])
Pero lo normal, es que lo que interese saber es cual es el alumno. Para saber ello:
[V, n]= MAX ([ALUMNO. FSICA])
Siendo V el valor y n la posicin.
DISP (ALUMNO (n). NOMBRE)
17
FUNCIONES DE REDONDEO.
RAMIFICACIN MLTIPLE
18
v a lo r 3
v a ria b l e
D is tin to
v a lo r 2
v a lo r 1
S e n te n c ia 3 S e n te n c ia 4 S e n te n c ia 1 S e n te n c ia 2
El comando que se utiliza es SWITCH y se realiza de la siguiente manera:
Ejemplo 16:
Crear un programa que realice operaciones matemticas con dos nmeros segn la
opcin elegida.
A continuacin se muestra el programa creado y la comprobacin en su ejecucin.
19
Ejemplo 17:
Crear un programa que realice operaciones matemticas para saber si dada la siguiente
funcin tiene un mnimo local:
f (x) x 2 x 6
20
21