Escolar Documentos
Profissional Documentos
Cultura Documentos
Código: 4E04022
Tema: FUNCIONES EN MATLAB Semestre: IV
Apellidos y Nombres (1):____________________________________________________ Grupo: FECHA:
I. OBJETIVOS
Definir, crear y utilizar funciones de usuario con MATLAB.
Conocer y analizar los diferentes tipos de funciones que se pueden definir con MATLAB.
M-Files:
Las M-Files son programas que el usuario puede crear (y salvar) en Matlab que engloban un conjunto de
comandos. Una vez salvado el M-File en el directorio c:/Mis documentos/MATLAB/, el usuario puede ejecutar
todos los comandos del M-file (si es que el M-file esta bien escrito) en forma instantánea.
Los M-Files son creados y editados en el Matlab Editor/Debugger. Para acceder a él, usamos el menú:
Ficheros de MATLAB
“MAT-files” son ficheros en formato específico de MATLAB que guardan el entorno de trabajo con todas las
variables existentes.
El comando >>load fich (sin extensión) busca por defecto la extensión .mat. Si un fichero tiene otra
extensión, se trata como un fichero ASCII (p.ej. load fich.txt).
“M-files” son ficheros ASCII que contienen scripts (secuencias de comandos de MATLAB) o funciones
(programadas en un lenguaje simple parecido a C). Para abrirlos, se navega por los directorios y se los abre.
Para crear o salvar, se usa las funciones del menú: File/New/M-file (desde el workspace) o File/Save (desde el
editor).
Scripts
Los M-files pueden ser scripts, que simplemente ejecutan una serie de órdenes o instrucciones de MATLAB; se
crean con el editor de MATLAB, aunque puede emplearse también para este proposito un editor de textos
cualquiera. La extension de un script MATLAB es M-file.m
Ejecutando este script M-file se crean las variables m y t en el entorno de MATLAB. No se puede compilarlo, ya
que es un script.
Laboratorio de Mecánica Computacional II Página: 2/6
Funciones
Una función es una pieza de código de computación que acepta un argumento de entrada del usuario y produce
salida al programa. Las funciones ayudan a programar eficientemente. Permiten evitar reescribir el código de
programa para cálculos que se realizan con frecuencia. Se puede convertir un script en función simplemente
añadiendo una cabecera.
Script vs Función
Scripts Funciones
No aceptan argumentos de entrada Aceptan argumentos de entrada y
ni producen resultados de salida producen resultados
Las funciones definidas por el usuario se almacenan como archivos-m y se puede acceder a ellas si están
almacenadas en el directorio actual.
Sintaxis
Tanto las funciones internas de MATLAB como las definidas por el usuario tienen la misma estructura. Cada una
consiste en un nombre, una entrada proporcionada por el usuario y una salida calculada. Por ejemplo:
Se puede observar que el usuario no necesita ver los cálculos realizados, sino que solo acepta la respuesta. Las
funciones definidas por el usuario funcionan de la misma forma que el caso anterior.
Las funciones definidas por el usuario se crean en archivos-m. Cada una debe comenzar con una línea de
definición de función que contenga:
la palabra function.
una variable que defina la salida de función.
un nombre de función.
una variable que se use para el argumento de entrada.
Por ejemplo:
function output=my_function(x)
Laboratorio de Mecánica Computacional II Página: 3/6
La línea anterior es la primera línea de una función definida por el usuario llamada my_function. Requiere un
argumento de entrada, que el programa llamara x, y se calculara un argumento de salida, que el programa llamara
output.
El nombre de función y los nombres de las variables de entrada y salida son arbitrarios y son seleccionados por el
programador según el planteamiento del problema.
Ejemplo de función definida por el usuario; veremos un ejemplo de función y sobre ella describiremos sus
elementos básicos.
Definición de la función: Esta línea define el nombre de la función (pvt) y el número y orden de parámetros de
entrada (en el ejemplo, un parámetro: p) y el número y orden de parámetros de salida o resultados (en el
ejemplo, un parámetro: pf).
parámetro de entrada
nombre de la función
parámetro de salida
palabra reservada
Si la función tiene más de un parámetro de entrada, estos se separan por comas y si tiene más de un parámetro
de salida se escribe la lista separada por comas y entre corchetes ([ ]). Este sería un ejemplo general:
Línea H1: Se trata de una primera línea comentada (empieza con %) tras la línea de definición de la función.
MATLAB muestra esta primera ayuda cuando usamos el comando lookfor o pedimos ayuda sobre un
directorio.
Texto de ayuda: MATLAB muestra este texto junto con la línea H1 cuando solicitamos ayuda sobre una
determinada función (>>help pvt). Se muestra el texto comentado hasta la primera línea en blanco o la
primera línea ejecutable. El resto de comentarios tras este bloque se ignoran.
Cuerpo de la función: esta parte contiene las sentencias que realizan los cálculos y asignan valores a los
parámetros de salida.
NOTA: La función opera sobre variables en su propio espacio de trabajo, separado del espacio de trabajo de la
línea de comandos.
Laboratorio de Mecánica Computacional II Página: 4/6
Nombre de la función
Los nombres de las funciones deben empezar por una letra. Por lo demás, pueden ser cualquier combinación de
letras, números o signos.
El nombre del fichero (M-file) que contiene la función es el mismo nombre de la función seguido de la extensión
.m. En el ejemplo: pvt.m
Cuando llamamos a una función, MATLAB busca en el espacio de trabajo y después en los directorios indicados
en el pathwork (comando path).
Si queremos conocer los M-files que tenemos en nuestro directorio de trabajo, escribiremos la orden what en la
línea de comandos.
Si queremos ver el contenido del M-file pvt.m, entonces teclearemos en la línea de comandos:
Podemos llamar a una función desde la línea de comandos, como si fuera cualquier otra orden o función ya
definida en MATLAB. También podemos llamar a una función dentro de otra.
Observar que los parámetros de entrada y salida no tienen por qué tener el mismo nombre que en la definición de
la función.
Es importante escribir todos los parámetros de entrada entre paréntesis y todos los parámetros de salida entre
corchete, siempre en el orden correspondiente:
Las variables de una función son locales, de modo que, aunque en el seno de la función se modifiquen los
argumentos de entrada, el valor de dichas variables en el Workspace queda inalterado.
IV. PROCEDIMIENTO
Indicaciones:
Para cada problema desarrolle un algoritmo de solución, un diagrama de flujo y el código
correspondiente.
2. Escribir una función que calcule las dos raíces de una ecuación de segundo grado: ax2+bx+c=0. a, b, y c son
parámetros de entrada.
function y = x(n)
% x Calcula la función y=x2
% La función se representa entre los valores -n y n
x=-n:0.1:n;
y=x.^2;
plot(x,y);
grid;
4. Definir una función que dados cinco (5) valores de resistencias R1, R2, R3, R4, R5 devuelva la resistencia
equivalentemente en serie REQS, y REQP que indica la resistencia equivalente en paralelo.
1
𝑅𝐸𝑄𝑃 = 1 1 1 1 1 ; %Resistencia equivalente en paralelo
+ + + +
𝑅1 𝑅2 𝑅3 𝑅4 𝑅5
V. CUESTIONARIO FINAL
1. La presión atmosférica (p) varía en función de la altura (h) según la siguiente expresión: p=1035*e-0.12h, donde
la altura se mide en kilómetros y la presión en milibares.
a) Escribir una función presion que calcule la presión para una altura dada (utilizar la función de MATLAB exp).
b) Queremos ahora observar en una gráfica cómo varía la presión en función de la altura. Para ello, definiremos
a_vec como un vector de alturas que toma los valores enteros entre 0km y 30km, aplicaremos la función que
hemos escrito para obtener los valores del vector de presiones p_vec y dibujaremos la gráfica con la altura en
las abscisas y la presión en las ordenadas:
Laboratorio de Mecánica Computacional II Página: 6/6
2. Diseñar una función en MATLAB que calcule la superficie y volumen de un cilindro dados su radio (r) y altura
(h) (V=πr2h, S=2πr2+2πrh).
Haga sus observaciones y emita al menos cinco conclusiones en torno al trabajo realizado
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________
________________________________________________________________________________________