Prof. Denis Parra Santander
Martes 8 de Mayo de 2007
Programación en Matlab – INFO 095 1. Requisitos • La programación en Matlab se realiza en archivos cuya extensión es .m. • Antes de poder ejecutar un archivo .m debe almacenarse el archivo en el PATH de Matlab, o agregar el directorio donde se almacena el archivo al PATH de Matlab. Esto se realiza en el Menú File -> Set Path. • Para ejecutar el archivo simplemente se escribe su nombre en el entorno de comandos de Matlab. 2. Tabla Comparativa de Instrucciones en Pseudocódigo e Instrucciones en Matlab (pueden saltarla y pasar al punto 3) Pseudocódigo
MATLAB
x1+2
x=1+2;
leer (var1)
var1=input(‛’);
Escribir (‛Ingrese los números:’)
disp(‛Ingrese los números’);
Escribir(‛Ud. escribió’, var, ‛números’)
fprintf(‛Ud. Escribió %d números’, var);
escribir(‛Ingresa tu nombre’) leer(nom) Si (x>3) entonces
nom = input (‛Ingresa tu nombre’); If (x>3)
Escribir(‛hola’)
disp(‛hola’);
Fin Si
end
Mientras (x<=6) hacer
while (x<=6)
Leer(num)
num=input(‛’);
xx+1
x=x+1;
Fin mientras
end
Para x1 hasta 3 hacer
for x=1:3 disp(‛hola’);
escribir (‛hola’) Fin Para
end
Para x9 hasta 1 step -1 hacer
for x=9 :-1 : 1 factorial=factorial*x;
factorial factorial * x Fin Para
end
Casos (var_estacion)
Switch (var_estacion)
‛1’ : escribir(‛primavera’)
case ‛1’
disp(‛primavera’);
‛2’ : escribir(‛verano’)
case ‛2’
disp(‛verano’)
‛3’ : escribir(‛otoño’)
case ‛3’
disp(‛otoño’)
‛4’ : escribir(‛invierno’)
case ‛4’
disp(‛invierno’)
Fin Casos
end
Prof. Denis Parra Santander
Martes 8 de Mayo de 2007
3. Tipos de Archivos .m El archivo .m no tiene una estructura rígida, puede ser sólo una lista de comandos Matlab. Por ejemplo para hacer un programa en Matlab que escriba en pantalla la frase Hola Mundo, basta lo siguiente: % Programa en Matlab que escribe en Pantalla “Hola, Mundo” disp ( ‘Hola, Mundo’) Ahora bien, si el archivo .m realiza unas acciones concretas sobre unas variables de entrada para generar unas variables de salida es mejor convertirlo en una función de Matlab. De esta forma, el resto de las variables que se utilicen en la función serán variables locales, con lo que no alterarán el contenido de las variables definidas en el entorno de comandos de Matlab. Por supuesto, las funciones pueden llamarse también desde otros archivos de comandos o funciones de Matlab. Para que un archivo .m o archivo de comandos Matlab pueda considerarse una función de Matlab, basta crear un archivo con nombre nombre_funcion.m y cuya primera línea (excluyendo comentarios) tenga esta estructura:
[var_salida_1, var_salida_2] (var_entrada1, var_entrada2)
=
nombre_funcion
Por supuesto que al definir la función pueden tenerse tantas variables de entrada como de salida. Pero además para que las funciones sean lo más versátiles posibles, a la hora de utilizar la función se pueden recoger sólo aquellas variables de entrada que necesitemos, y pasarle menos argumentos de los que estén declarados en la función. Esto último es muy útil para utilizar parámetros a los que se les pueda asignar valores por defecto dentro de la función si no se pasa la variable correspondiente. 4. Ejemplo de función en archivo .m: Abra el editor de Matlab escribiendo en el entorno de comandos edit. Escriba un archivo potencias.m, en algún directorio accesible por Matlab (es decir, dentro del PATH de Matlab), con el siguiente contenido: % POTENCIAS calcula potencias enteras % % POTENCIAS(x) genera las potencias segunda, tercera y
Prof. Denis Parra Santander
Martes 8 de Mayo de 2007
% cuarta de x % % Por defecto x = 2 % function [x2,x3,x4] = potencias(x) if (nargin==0) x2=2; x3=4; x4=8; else x2=x*x; x3=x2*x; x4=x3*x; end Si se pasa un argumento numérico se calculan algunas de sus potencias. Si no se pasa ninguno se asignan las potencias de 2: Operación (entorno de comandos)
[cuadrado,cubo]=prueba(3)
[cuadrado,cubo,cuarta]=prueba
Resultado
cuadrado = 9 cubo = 27 cuadrado = 2 cubo = 4 cuarta = 8
Este mismo ejemplo nos sirve para comentar la creación de ayudas en las funciones: Matlab entiende como descripción de la función todas las líneas de comentario que aparecen en la cabecera antes de la primera línea interpretable (en el caso de una función la que contiene la palabra function y la descripción de los argumentos). Al pedir ayuda del comando mostrará todas esas líneas de ayuda. Si la búsqueda se realiza con lookfor se mostrará sólo la primera línea. Operación (entorno de comandos)
Resultado
help potencias POTENCIAS calcula potencias enteras POTENCIAS(x) genera las potencias 2, 3 y 4 de x Por defecto x=2 lookfor potencias
POTENCIAS calcula potencias enteras
Prof. Denis Parra Santander
Martes 8 de Mayo de 2007
5. Ejercicios a) Escriba una función en Matlab cuya entrada sean dos vectores de igual dimensión y cuya salida sea la suma de los vectores. Si la dimensión de los vectores no coincide, se debe enviar un mensaje de advertencia. b) Escriba una función en Matlab cuyas entradas sean dos números x, y. El primero (x) debe estar entre 1 y 10. El segundo (y) puede ser cualquier valor. La salida de la función es una matriz cuadrada de dimensión x cuya diagonal sean valores iguales a y. c) Escriba una función en Matlab cuya entrada sea un número del 1 al 7 y cuya salida sea el día de la semana correspondiente. Si no se escribe entrada, por defecto la salida es “lunes”. 6. Referencias [1] “Introducción a Matlab”, Fernando Tadeo Rico, Dpto. de Ingeniería de Sistemas y Automática, Facultad de Ciencias, Universidad de Valladolid.