Programación en Matlab
Table of Contents
Objetivo.....................................................................................................................................................................1
Creación de una función...........................................................................................................................................1
Función anónima.................................................................................................................................................. 1
Ejemplo (Función con una variable)................................................................................................................. 1
Ejemplo (Función con varias variables)............................................................................................................ 2
Funciones con la palabra reservada function....................................................................................................... 2
Ejemplo (Desde una función externa)............................................................................................................. 2
Ejemplo (Desde una función interna)............................................................................................................... 2
Estructuras de Control.............................................................................................................................................. 3
Estructura if...........................................................................................................................................................3
Ejemplo:............................................................................................................................................................3
Ejemplo.............................................................................................................................................................3
Bucle for................................................................................................................................................................4
Ejemplo.............................................................................................................................................................4
Ejemplo.............................................................................................................................................................4
Ejercicio............................................................................................................................................................ 5
Bucle while............................................................................................................................................................5
Ejemplo.............................................................................................................................................................5
Funciones en Matlab................................................................................................................................................ 6
Objetivo
• Aprender a crear funciones anónimas , funciones con la palabra reservada function.
• Utilizar las estructuras de control if, for y while.
Creación de una función
Función anónima
Son funciones simples de una linea que no necesitan un archivo separado. Perfectas para cálculos rápidos
Sintaxis:
nombreFuncion= @(variables) expresión
Ejemplo (Función con una variable)
Crear la función
f=@(x) sin(x).*exp(x)
f = function_handle with value:
@(x)sin(x).*exp(x)
%Evaluar la función en x=1
fprintf('f(1) es igual a: %.5f',f(1))
1
f(1) es igual a: 2.28736
%Evaluar en un vector, x=[1 3 2]
x=[1 3 2]
x = 1×3
1 3 2
fprintf('La función evaluada en el vector [1 3 2] es: ')
La función evaluada en el vector [1 3 2] es:
f(x)
ans = 1×3
2.2874 2.8345 6.7188
Ejemplo (Función con varias variables)
Crear la función
f=@(x,y) x^2*y
f = function_handle with value:
@(x,y)x^2*y
%Evaluando en x=1 e y=2
f(1,2)
ans =
2
Funciones con la palabra reservada function
Funciones más complejas que se guardan en archivo .m (siempre y cuando se invoque desde un
script.m) , .mlx (siempre y cuando se imvoque desde un archivo .mlx) o también se sitúan en un script(live
script) al final del documento.
Permiten múltiple lineas y operaciones.
Sintaxis:
function [salidas]=nombreFuncion[entrada]
%codigo de la función
end
Ejemplo (Desde una función externa)
Invocar a la función fu
z=fu(1,2)
z =
2
Ejemplo (Desde una función interna)
2
Invocar a la función fu2
z=fu2(1,2)
z =
2
Estructuras de Control
Estructura if
Ejecuta código si se cumple una condición.
Sintaxis:
if condicion
%codigo a ejecutar
elseif otra condicion
% otro codigo
else
%codigo por defecto
end
Ejemplo:
Verificar si un número es par
n=20
n =
20
if mod(n,2)==0
fprintf('El número %d es par',n)
else
fprintf('El numero %d es impar',n)
end
El número 20 es par
Ejemplo
Verificar si un número es positivo, negativo o cero.
n=0;
if n>0
fprintf('El número es positivo')
elseif n<0
fprintf('El número es negativo')
else
fprintf('El número es cero')
3
end
El número es cero
Bucle for
Repite un bloque de código un número especifico de veces.
Sintaxis:
for variable=inicio:paso:fin
% codigo a repetir
end
Ejemplo
Repetir la palabra UNI 10 veces
for k=1:10
disp('UNI')
end
UNI
UNI
UNI
UNI
UNI
UNI
UNI
UNI
UNI
UNI
Ejemplo
Aproximar utilizando 20 términos de la serie de taylor
Solución
s=1;
x=5;
for k=1:19
s=s+x^k/factorial(k);
end
fprintf('El valor aproximado de e^5 es %.6f',s)
El valor aproximado de e^5 es 148.413108
disp('Valor Exacto:')
Valor Exacto:
exp(5)
4
ans =
1.484131591025766e+02
Ejercicio
Determine con cuantas cifras significativas se aproxima e^5 según la serie de taylor al valor exacto (según
exp(5))
Solución
format long
A=exp(5)
A =
1.484131591025766e+02
a=s
a =
1.484131078683383e+02
delta=abs(A-a)/A
delta =
3.452135821971953e-07
%Verificando
delta <= 5*1e-7
ans = logical
1
%Rpta 7 c.s
Bucle while
Repite un bloque de código mientras se cumple una condición.
Sintaxis:
while condicion
% codigo a repetir
end
Ejemplo
Aproximar utilizando 20 términos de la serie de taylor
Solución
5
s=1;
x=5;
k=1;
while k<=19
s=s+x^k/factorial(k);
k=k+1;
end
fprintf('El valor aproximado de e^5 es %.6f',s)
El valor aproximado de e^5 es 148.413108
Funciones en Matlab
function z = fu2(x, y)
z = x^2*y;
end