Ficheros script Hasta ahora los comandos MATLAB que hemos visto

Anuncio
El ícono para
Run (ejecutar)
Ficheros script
Hasta ahora los comandos MATLAB que hemos visto se ejecutaban en la Ventana de
Comandos. Aunque todos los comandos MATLAB se pueden ejecutar de esta forma, la
utilización de la Ventana de Comandos se restringe normalmente a la ejecución de un
número pequeño de comandos con salidas bien controladas. En caso contrario, cuando el
número de sentencias en demasiado elevada, es necesario plantearse la escritura y
ejecución de código de otra forma. El problema proviene, básicamente, de que la Ventana
de Comandos no es suficientemente interactiva, los comandos no pueden ser guardados y
ejecutados de nuevo a petición del usuario. Eso implica que cada vez que se pulsa la tecla
Intro sólo se ejecute el último comando, y todo lo anterior permanece inalterable. Si se
necesita realizar alguna corrección o cambio sobre algunos de esos comandos
previamente ejecutados, será necesario volver a escribirlos y ejecutarlos de nuevo de uno
en uno.
Otra forma diferente de ejecutar comandos en MATLAB es crear un fichero con los
comandos para ejecutarlo posteriormente. Cuando se ejecuta el fichero en cuestión, los
comandos que contiene son ejecutados en el orden en que aparecen en el fichero.
Además, si fueran necesarias correcciones o cambios posteriores, sólo habría que editar el
fichero y ejecutarlo de nuevo. Los ficheros que se utilizan para este propósito en
MATLAB se denominan ficheros de procesamiento de comandos o ficheros script.
4.1 Notas sobre los ficheros script
• Un fichero script es una secuencia de comandos MATLAB, también denominada
programa.
• Cuando se ejecuta un fichero script, MATLAB ejecuta los comandos en el orden en
que éstos han sido escritos, igual que si se ejecutaran uno auno en la Ventana de
Comandos.
• Cuando un fichero script contiene un comando que produce una salida o resultado (p.
ej. una asignación de variable sin un punto y coma al final), la salida se visualiza en la
Ventana de Comandos.
• La utilización de ficheros script es conveniente, ya que éstos pueden ser editados (es
decir, se pueden corregir o modificar), y se pueden ejecutar tantas veces como se
quiera.
• Los ficheros script se pueden crear y editar en cualquier editor de texto. Asimismo el
texto se puede copiar y pegar desde estos editores a MATLAB para ser ejecutado.
• Los ficheros script también se denominan ficheros M, ya que la extensión .m es la
que utiliza y reconoce MATLAB cuando se guardan estos ficheros.
Manipulación de ficheros script I
En MATLAB, los ficheros,script se.crean y editan con la Ventana del Editor/Depurador.
Para abrir esta ventana hay que Ir al menu File (Fichero), se seleccIona New (Nuevo) y
despues M-file (FIchero M).
Después de esto se abrirá una ventana, como la que se muestra en la Figura 1.1,
correspondiente el editor ydepurador de ficheros script de MATLAB.
Los comandos, dentro del fichero script, se
teclean línea por línea. Estas líneas se
enumeran automáticamente. La forma de
crear una nueva línea es pulsando la tecla
Enter
Figura 1.1: La Ventana del Editor/Depurador. directo
Una vez que se ha abierto la Ventana el Editor/Depurador de scnpts, los comandos se van
introduciendo línea por línea. MATLAB enumera automáticamente las líneas cada vez
que se pulsa la tecla Enter. Los comandos también se pueden escribir en cualquier editor
o procesador de textos y después trasladarse (copiar/pegar) al editor.
Comando de salida
Los comandos de uso muy frecuente son: disp y fprintf
•
El comando disp se utiliza para visualizar un texto o el contenido de una variable
sin mostrar su nombre.
El formato de este comando es:
disp(nombre de variable) o disp(‘Mensaje’)
•
El comando fprintf se utiliza para visualizar salidas de programas (texto y datos)
en la pantalla, o bien almacenarlas en un fichero. Con este coamndo, y 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.
Uso del comando fprintf para visualizar mensajes de texto:
fprintf('Mensaje en forma de cadena')
Nota Para cambiar de linea en un mensaje de texto se debe insertar el código \n.
Este código se le denomina código de escape.
Utilización del comando fprintf para visualizar datos y texto juntos:
g
Representación en formato corto de las notaciones e o f.
Para visualizar texto y datos (valores de variables) juntos, el comando fprintf debe
utilizarse siguiendo la sintaxis:
G
i
Representación en formato corto de las notaciones E o f.
Entero.
fprintf('Texto %-5.2f texto adicional', nombre_variable)
Se puede obtener información adicional sobre estos y otros formatos utilizando la ayuda
de MATLAB, el menú Help (Ayuda).
El símbolo % marca
del lugar donde se
insertará el número
dentro del texto
Elementos de formato
(definen el formato
. del número).
Nombre de la variable cuyo
valor será vsualizado
Ejemplo: Pedir al usuario por pantalla tres números y responde con el mensaje: El
promedio es prom de los número ingresados
Solución:
Método 1
Los elementos de formato son:
n1=input('Ingrese el primer numero: ');
n2=input('Ingrese el segundo numero: ');
n3=input('Ingrese el tercer numero: ');
-5.2f
Flag o bandera
(opcional).
.
Ancho del campo y
precisión (opcional)
Carácter de conversión
(obligatorio)
fprintf('El promedio es %f, de los numeros ingresado', (n1+n2+n3)/3);
Método 2
El flag o bandera, cuyo carácter es opcional, puede ser uno de los siguientes:
Funciones y archivos de funciones
Carácter utilizado
para la bandera
-(signo menos)
+ (signo más)
O( cero )
Descripción
Justificación izquierda del número dentro del campo
Visualiza el carácter de signo ( + o -) delante del número
Añade ceros si el número es más pequeño que el campo.
En principio existen dos tipos de funciones: las funciones inline, que se insertan en
la línea de comandos y las que se escriben en un documento de texto externo. Esta última
forma, que es la evolución natural de los ficheros script, es más flexible y es en la que nos
centraremos a continuación.
Sintaxis de funciones en línea
La especificación del ancho y precisión del campo (5.2 en el ejemplo anterior) es
opcional. El primer número (5 en nuestro ejemplo) es el ancho del campo, el cual nos
indica el menor número de dígitos en la visualización. Si el número que se visualiza es
menor que el ancho del campo, se añadirán ceros o espacios delante del número en
cuestión. La precisión se corresponde con el segundo número en el ejemplo anterior), y
especifica el número de dígitos que se mostrarán a la derecha del punto decimal.
El último elemento es el correspondiente al formato de conversión (f en el ejemplo
anterior). Éste es obligatorio. A continuación se muestran los caracteres de conversión
más utilizados:
nombre = inline ('expresión matemática en forma de cadena')
Sintaxis de un archivo de funcion
% La primera línea de este archivo debe contener la sintaxis de cómo usarla en la forma :
function [salida1,salida2] = filename(entrada1,entrada2,entrada3)
e
E
f
Notación exponencial en minúsculas (ej. 1.709098e+001).
Notación exponencial en mayúsculas (ej. 1.709098E+001).
Notación de punto fijo (ej. 17.090980).
Una función puede tener tantas entradas y salidas como se necesiten. Las siguientes
líneas contienen el texto que aparecerá cuando se invoque el comando help
nombre_de_la_función . Estas líneas son opcionales, pero deben entrarse usando
porciento % al principio de cada línea, del mismo modo que ingresaría los comentarios al
final de las líneas que lo requieran en cualquier otro archivo-m no necesariamente de una
function. Finalmente y abajo del texto de ayuda, se incluirá el texto real de la función con
todos los comandos o instrucciones necesarias.
http://www.ib.cnea.gov.ar/~control2/Links/Tutorial_Matlab_esp/function.html
http://gata.uv.es/~arandiga/doc/matlab/primer/primerlt2/node14.html
Ejercicio Escriba una función, de nombre StasTi, en MATLAB 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, apartir de su altura en centímetros y de su peso en kilogramos.
Determine el peso la altura en pulgadas y la masa en libras de una persona que mide
170cm y pesa 70kg.
Ejercicio Usando un archivo de función en MATLAB para la siguiente función:
y(x)=0.9x4-12x2-5x
La entrada de la función será x, y la salida será y. Escriba la función de forma que x
pueda ser un vector, y utilícela para:
a)Calcular y(-3) e y(8)
b)Representar gráficamente la función y(x), para -4≤ x ≤ 4
Método 1 Con archivo de función
x=[-4:0.1:4]
plot(x,f(x))
Método 2 usando funciones en linea
>> x=[-4:0.1:4]
>> g=inline('0.9*x.^4-12*x.^2-5*x')
g=
Inline function:
g(x) = 0.9*x.^4-12*x.^2-5*x
>> plot(x,g(x))
Contenido del archivo: f.m
function y=f(x)
y=0.9*x.^4-12*x-5*x
Descargar