Introducción a Matlab
Introducción a Matlab 1
Introducción a Matlab
MATLAB (abreviatura de MATrix LABoratory, "laboratorio de
matrices") es una herramienta de software matemático basado en un
lenguaje de programación propio (lenguaje M).
Prestaciones básicas:
– Manipulación de matrices.
– Representación de datos y funciones.
– Implementación de algoritmos.
– Creación de interfaces de usuario (GUI)
– Comunicación con programas en otros lenguajes y hardwares.
El paquete MATLAB dispone de dos herramientas adicionales:
– Simulink (plataforma de simulación)
– GUIDE (editor de interfaces de usuario - GUI).
Se pueden ampliar las capacidades de MATLAB con toolboxes.
Introducción a Matlab 2
Introducción a Matlab
Sitios de interés para aprendizaje autónomo (autodidactas)
Barra de comandos en el propio Matlab
– help XYZ (nombre de la función) Clicar al final en “Reference page…”
– Seleccionar la función XYZ y presionar F1
MatlabCentral
– Foro: ForoMatlab
– Intercambio de archivos: ArchivosMatlab
Canales de YouTube
– TutorialesMatlabCastellano
– OfficialMatlabChannel
Ejercicios por niveles de dificultad
– EjerciciosResueltos
Bibliografía
– D. F. Griffiths, An Introduction to Matlab v2.3, The University Dundee, 2005
Introducción a Matlab 3
Introducción a Matlab
Primeros pasos: Icono Matlab
Herramientas
Ruta,
archivos
Interfaz (Path)
Editor
Variables,
tamaño,
clase
Histórico
Introducción a Matlab Comandos 4
Introducción a Matlab
Tipos de datos
– Numéricos: double, simple, integer, int16, int32…
– Caracteres: char
– Estructuras: struct
– Celdas: cell
– Tablas: table
Ejemplos
Introducción a Matlab 5
Introducción a Matlab
Tipos de datos
– Numéricos: double, simple, integer, int16, int32…
– Caracteres: char
– Estructuras: struct
– Celdas: cell
– Tablas: table
Ejemplos
Introducción a Matlab 6
Introducción a Matlab
¿Cómo son los tipos de datos? y ¿para que se utilizan?
– Para Matlab todos los datos son matrices. Desde la matriz más simple que
es 1x1, (p. ej. un número escalar) hasta matrices n x m (p. ej. 20x4000)
– Las matrices se estructuran de la siguiente manera:
donde:
n: son filas
m: son columnas
– Ejemplo: en el comand window escribir:
• x=magic(3)
• y=ones(3,5)
• z=‘ArratsaldeOn’
• w=x*y
– ¿Cuantas filas y columnas tienen cada una de las variables?
Introducción a Matlab 7
Introducción a Matlab
Conocer las filas y columnas de cualquier dato
– Para conocer las filas y columnas de los datos se suelen utilizar
principalmente 2 comandos:
– l=length(x) la respuesta siempre es la fila o columna más grande.
– [fila,columna]=size(x) tamaño de la matriz n (fila) y m (columna).
– Colocer las filas y columnas de los datos es importante para:
• Realizar operaciones matemáticas.
• Agrupar matrices.
• Agregar nuevos términos.
• Conocer donde se encuentra cada elemento.
– Ejercicio: Probar a juntar las matrices anteriores:
• a=[x,y]
• b=[z,’ongietorri’]
Introducción a Matlab 8
Introducción a Matlab
Definición de los datos numéricos:
– Escalar: x=100;
– Vector fila: y=[1,2,3,4,5,6,7] o y=[1 2 3 4 5 6 7];
– Vector columna: z=[1;2;3;4;5;6;7];
– Matriz 2x2: m=[1,2;3,4];
– Matriz 3x5; n=[1,2,3,4,5;1,2,3,4,5;1,2,3,4,5];
Nota: Un operador interesante para cambiar filas por columnas es
utilizar la transpuesta (algebra lineal).
– Convertir un vector fila en columna: y’
– Convertir una matriz 3x5 en 5x3: n’
Matrices interesantes
– ones(x1,x2) matriz compuesta de unos.
– zeros(x1,x2) matriz nula (compuesta de zeros).
– eye(x1) matriz de identidad (diagonal compuesta de 1 y el resto 0)
Introducción a Matlab 9
Introducción a Matlab
Vuestro turno:
– Utilizando los comandos anteriores:
• Componer un vector fila y otro columna de 30 elementos compuesto de ochos.
v=[8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
• Programar las siguiente matriz:
[7 2 2 2 2 2 2 2 0 0
2 7 2 2 2 2 2 2 0 0
2 2 7 2 2 2 2 2 0 0
2 2 2 7 2 2 2 2 0 0
2 2 2 2 7 2 2 2 0 0
2 2 2 2 2 7 2 2 0 0
2 2 2 2 2 2 7 2 0 0
2 2 2 2 2 2 2 7 0 0]
Introducción a Matlab 10
Introducción a Matlab
Extraer algún elemento de un vector o matriz:
– Para extraer un elemento o buscar dónde se encuentra algún elemento
dentro de un vector o matriz, se puede realizar de distintas maneras. Las
más habituales son:
• Búsqueda manual.
• Comando find(x).
Ejemplos:
– Extraer el valor 10 en el siguiente vector:
v=[8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
– Extraer el valor 10 en la siguiente matriz:
[7 2 10 2
2 7 2 2
2 2 7 2]
Introducción a Matlab 11
Introducción a Matlab
Ejemplos:
– Extraer el valor 10 en el siguiente vector:
v=[8,8,8,8,8,8,8,8,8,8,8,8,8,8,10,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]
– Extraer el valor 10 en la siguiente matriz:
[7 2 10 2
2 7 2 2
2 2 7 2]
– Mediante búsqueda manual: el elemento 10 se encuentra en [1,15], y [1,3]
– Mediante find: [row,col]=find(v==10) y [row,col]=find(m==10)
– Nota: con la función find se pueden encontrar elementos menores,
iguales, mayores, menores o iguales, etc…
• v==10 , v<10, v>10, v>=10, v<=10, etc…
Introducción a Matlab 12
Introducción a Matlab
Operaciones con vectores y matrices:
– Sumar: x+y Raiz cuadrada: sqrt(x)
– Restar: x-y Logaritmo neperiano: log(x)
– Multiplicar: x*y Logaritmo base 10: log10(x)
– Dividir: x/y Logaritmo base 2: log2(x)
– Potencia: x^y
Operaciones elemento a elemento:
– Multiplicar: x.*y
– Dividir: x./y
– Potencia: x.^y
Nota: las constantes típicas se suelen escribir de la siguiente manera:
– El número pi = pi
– El número e = exp(1)
Introducción a Matlab 13
Introducción a Matlab
Operaciones avanzadas
– Derivar numéricamente
• y=diff(x)/dt
– Integrar numéricamente. Dos maneras distintas
• Integrar una señal en continuo y=cumsum(x)*dt;
• Obtener el valor de la integral (e.j. calcular un área) y=sum(x*dt)
Graficar señales comando figure
– Los comandos clásicos para graficar los vectores suelen ser las siguientes:
• Plot(x,y) gráfico x e y
• Line(x,y) gráfico x e y
• Surf(x,y,z) gráfico de superficies
• Mesh(x,y,z) gráfico de superficies
– También se pueden crear varias gráficas en la pantalla:
• Subplot(x1,x2,x3)
Introducción a Matlab 14
Introducción a Matlab
Ejemplo: dibujar y derivar e integrar la siguiente ecuación:
– x=sin(n*t) siendo t un vector columna de 0 a 10 con un incremento de
tiempo de 0.01 segundos y la frecuencia del seno n=2*pi
Introducción a Matlab 15
Introducción a Matlab
Editar un grafico:
– A las figuras se les puede poner titulo, leyendas, marcadores, cambiar los
colores, etc…
– Para ello utilizar la ayuda help plot y ver que opciones hay.
– Comandos básicos:
• Hold on, grid on, title, xlabel, ylabel, legend, etc…
Ejemplo: editar las señales anteriores y mostrarlo como aparece
en la siguiente figura:
Introducción a Matlab 16
Introducción a Matlab
Editar un grafico:
– A las figuras se les puede poner titulo, leyendas, marcadores, cambiar los
colores, etc…
– Para ello utilizar la ayuda help plot y ver que opciones hay.
– Comandos básicos:
• Hold on, grid on, title, xlabel, ylabel, legend, etc…
Ejemplo: editar las señales anteriores y mostrarlo como aparece
en la siguiente figura:
Introducción a Matlab 17
Introducción a Matlab
Funciones de interés:
– Clear all, close all, clc limpiar todo el workspace, figuras etc…
– display(‘asdfadf’) mostrar en el command window algo.
Funciones avanzadas: loops
– For… end
– While … end
Funciones avanzadas 2: cases
– If … end
– Switch … case … otherwise … end
Funciones avanzadas 3: functions
– function … end
Introducción a Matlab 18
Introducción a Matlab
Ejemplos con estas funciones: seguir este video y replicar
– [Link]
Buenas prácticas:
– Utilizar el editor y no el command window
– Siempre empezar con los siguientes comandos:
• Clear all, close all, clc limpiar todo el programa
– Evitar while siempre que sea posible.
– Crear funciones simples
Introducción a Matlab 19
Introducción a Matlab
Funciones
– Estamos acostumbrados a trabajar con funciones del tipo y=f(x) donde
f(x) es una expresión matemática en términos de la variable x. Se calcula
un valor de y (salida) cuando se proporciona un valor de x (entrada) en la
expresión. MATLAB define muchas funciones como sin(x), sqrt(x), etc.
– Podemos definir nuestras propias funciones guardarlas en un fichero y
usarlas de un modo semejante a las funciones predefinidas. Normalmente,
un programa se subdivide en tareas y cada una de ellas es llevada a cabo
por una función, a esta forma de resolver los problemas se denomina
programación estructurada.
– La principal ventaja de las funciones es la posibilidad de reutilizar el
código en otros programas distintos al cual fueron definidas.
Introducción a Matlab 20
Introducción a Matlab
Funciones (cont.)
– Las funciones se crean del mismo modo que un script seleccionado en el
menú New/Function y se guardan en un fichero que tiene el mismo
nombre que la función y extensión .m
Ejemplo: crear una función para derivar
Introducción a Matlab 21
Introducción a Matlab
Ejemplo: crear una función para derivar (cont.)
Introducción a Matlab 22
Introducción a Matlab
Funciones (cont.)
– El fichero que guarda la función tiene el mismo nombre que la función, tal
como vemos al seleccionar en el Editor File/Save as...
Introducción a Matlab 23
Introducción a Matlab
Lectura y guardado de archivos
– Otra de las funciones de Matlab es la lectura y guardado de archivos.
– Matlab tiene capacidades para leer archivos tipo:
• .txt
• .csv
• .xlsx
• .mat
• .png
• etc…
Los comandos básicos de lectura y guardado son:
– load(‘[Link]’)
– save(‘xxx’)
– Cualquier necesidad recordar help load o help save
Introducción a Matlab 24
Introducción a Matlab: ejercicio
Calcular el valor máximo y el área de la función en el
dominio empleando métodos numéricos. Calcular el
número de muestras mínima necesaria para considerar un resultado
cuyo error es menor al 0’1%. Programar el algoritmo en Matlab.
Para la realización del ejercicio se recomiendan los siguientes pasos:
– Calcular analíticamente el valor máximo y el área de la función.
– Graficar la función. (usar plot)
– Calcular numéricamente el valor máximo y el área de la función.
– Calcular el error. (usar abs(x))
– Buscar el número de muestras mínimo para que el error sea admisible.
(usar while o for)
Introducción a Matlab 25
Introducción a Matlab: ejercicio
Uso de las funciones:
Replicarlo:
Introducción a Matlab 26
Introducción a Matlab: ejercicio
Uso de las funciones (cont.)
– Una vez aprendido como se hace y se utiliza una función. Realizar los
siguientes tres ejemplos:
– Pasos a seguir:
• Calcular analíticamente las derivadas
• Graficar la derivada.
• Calcular numéricamente las derivadas
• Comparar en un gráfico ambas señales.
Introducción a Matlab 27
Introducción a Matlab: ejercicio
Uso de las funciones (cont.) Resultados
Introducción a Matlab 28
Introducción a Matlab: ejercicio
Uso de las funciones (cont.)
– Realizar otro ejemplo con una derivada desconocida:
– Pasos a seguir:
• Utilizar un vector x=-5 a 5
• Graficar la función y1
• Calcular la derivada.
• Graficar la derivada.
Introducción a Matlab 29
Introducción a Matlab: ejercicio
Desarrollar otra función
– Desarrollar la función de integrar y posteriormente utilizarla con los
siguientes ejemplos:
– Pasos a seguir:
• Utilizar un vector x=0 a 2
• Graficar las funciones.
• Calcular las integrales.
• Graficar las integrales.
– ¿Que ocurre si utilizamos un vector de x=-2 a 2?
• ¿Porqué se obtienen diferentes resultados?
Introducción a Matlab 30
Introducción a Matlab: ejercicio
Uso de las funciones (cont.) Resultados
– Cuidado con las condiciones iniciales !!!
Introducción a Matlab 31
Introducción a Matlab: ejemplos
Ejemplos resueltos
– Ir a MUdle al curso de la asignatura y descargar los ejemplos resueltos. Ser
autodidactas e interpretar qué se hace en los códigos.
Introducción a Matlab 32