CURSO BASICO DE MATLAB CABRERA ROMAN ALEJANDRO FERNANDEZ PAXTIAN MARCELO
1. INTRODUCCION • MATLAB es un lenguaje de programación interactivo para calculo
numérico, visualización y programación. • MATLAB – MATrix LABoratory (Laboratorio de matrices )
• Principales aplicaciones: • Análisis de datos • Desarrollo de algoritmos • Crear modelos y aplicaciones
2. ENTORNO
DESKTOP (ESCRITORIO)
• Command Window (Ventana de comandos) • Se utiliza para ingresar las variables, ejecutar las funciones y los archivos
„m‟ con los cuales trabaja matlab. • En ella se escriben los comandos de MATLAB. Las instrucciones se escriben después del prompt (aviso) • Command History (Historial de comandos) • Las
declaraciones hechas en la ventana de comandos quedan almacenadas en el historial de comandos. Aquí se pueden observar y ejecutar declaraciones previamente realizadas, como copiar y ejecutar declaraciones seleccionadas.
•
• Start Button (Botón de inicio) • El botón de inicio permite un rápido acceso a las herramientas, demos y
documentación al hacer clic en la opción deseada.
• Current Directory (Directorio actual) • Los archivos con los cuales opera MATLAB utilizan el Current Directory y
el Search Path. Cualquier archivo que se ejecute debe estar en el current directory o en el search path. •
• Workspace (Espacio de trabajo) • El worksapace o espacio de trabajo de MATLAB consiste en un set de
variables (arreglos) construidos durante la sesión de trabajo de MATLAB que son almacenados en la memoria, el worksapace muestra las variables creadas, así como su tipo y su valor. • Array Editor: El editor de arreglos aparece al hacer doble clic en alguna variable del workspace. Este editor puede ser utilizado para observar y editar el contenido de las variables.
3. FAMILIARIZACION CON EL ENTORNO
4. ALGUNOS COMANDOS ÚTILES • clc: para “limpiar” la ventana de comandos • close [all] [all hidden]:
Para cerrar todas las ventanas de figuras,
aplicaciones,… • exit, quit: Para salir de MATLAB • diary [on/off]: Para grabar una sesión en un fichero de texto • ver: Para listar las toolboxes instaladas • who, whos: para ver las variables del workspace • clear [all]: para borrar variables (>>clear las borra todas, >>clear var1 sólo
borra la variable var1)
• why: para ver el sentido de humor que gusta a los autores de MATLAB • lookfor: búsqueda de funciones • type: muestra el código de los ficheros M, p. ej.: >>type roots • save: Para guardar el estado de una sesión de trabajo. • load: Para recuperar el estado de una sesión de trabajo.
• Para más información se recomienda teclear >>help nombre_comando. • Nota: es posible detener una ejecución en progreso de matlab presionando
las teclas :
• Control + c (Útil cuando matlab no responde)
5. VARIABLES Y CONSTANTES • Constante: Es el nombre que se le da a un campo cuyo contenido no
cambia o varia a través del proceso. • Variable: Una variable es el nombre que se le asigna a un campo, cuyo
contenido puede cambiar o variar a través de un proceso. El nombre y el contenido son las partes de una variable.
Constantes en matlab
6. TIPOS DE DATOS EN MATLAB ARRAY [Full or sparse]
logical
char
NUMERIC
Cell Array
structure
User classes
int8, uint8, int16, uint16, int32, uint32, int64, uint64
single
double
Java classes
function handle
Tipos elementales de datos en matlab
Tipos de datos agregados en matlab
(cell arrays)
7. ARREGLOS 1.
Un arreglo es un conjunto de elementos del mismo tipo referenciados por uno o mas índices.
2.
Un arreglo es conjunto de variables del mismo tipo bajo un mismo nombre cuyo acceso se realiza mediante índices. • Clasificación de acuerdo a la dimensión: • ESCALARES
-> Almacena un solo valor. • VECTORIALES -> Valores ordenados en fila o en columna. • MATRICIALES -> Arreglo rectangular de elementos
Aspecto de un vector fila, tiene una Sola dimensión (unidimensional) Aspecto de una matriz, tiene 2 dimensiones (Bidimensional)
Aspecto de un vector columna (unidimensional)
Aspecto de un escalar
Creación de matrices y vectores
El operador dos puntos (:) inicio : salto : fin El operador dos puntos también sirve crear vectores.
Paso entre Elementos (incremento/decremento)
Algunas funciones para creación de vectores: linspace(x1,x2,n) genera un vector con n valores igualmente espaciados entre x1 y x2 logspace(d1,d2,n) genera un vector con n valores espaciados logarítmicamente entre 10^d1 y 10^d2.
Ingresar un arreglo
• Las columnas se separan por espacios o comas, y las
filas por punto y coma o una nueva línea.
Acceso a elementos Selecciona el primer elemento
Vector de filas Vector de columnas
Selecciona toda la fila
Fila 2 Columnas 2,3 y 4
Selecciona la ultima columna
Manera de acceder a elementos de un vector
8. ARREGLOS DE CELDAS (CELL ARRAYS) • Un cell array proporciona un mecanismo de almacenamiento para diferentes
tipos de datos. Los datos pueden ser de todo tipo: matrices, vectores, estructuras e incluso más cell arrays. • Ejemplo de cell array:
Creación y acceso a cell arrays • Un cell array se puede crear de dos formas, usando paréntesis y usando
llaves. • Si se usan paréntesis, entonces los valores deben ser dados entre llaves.
A(1,1) = {[1 4 3; 0 5 8; 7 2 9]}; A(1,2) = {„Tania Arrieta'}; • Si se usan llaves, entonces los valores se dan tal cual.
A{1,1} = [1 4 3; 0 5 8; 7 2 9]; A{1,2} = „Tania Arrieta '; • Otra forma de crear un cell array:
• My_cellarray={'Nombre','Edad','Grupo','Calificaciones'; • •
'Luis' ,19,'4EM3' ,[9 8 7 6 10 10 9]; 'Maria' ,19,'4EM2' ,[8 8 7 7 9 10 9];}
• Cuando se quiere preguntar por el contenido de un elemento del cell array se
puede hacer de dos formas: • A(1,2) regresa el tipo de dato que es y el tamaño, pero no me muestra el
contenido en si. • A{1,2} me muestra el contenido del elemento (1,2) del cell array, se recomienda esta forma.
9. FORMATOS DE SALIDA • Permiten cambar la forma que matlab muestra los resultados, recordar
que matlab almacena los datos de tipo numérico en doble precisión (8 bytes).
10. OPERADORES
11. OPERACIONES CON MATRICES Y ESCALARES
Algunas funciones para operaciones con vectores
12. ESTRUCTURAS DE CONTROL • Para controlar el orden o el camino en el cual se desarrollan las expresiones
u operaciones de un programa, es necesario utilizar estructuras de control de flujo.
13. ENTRADA Y SALIDA DE DATOS Entrada:
Espera que se ingrese un dato numérico o un vector Edad=input(‘Ingrese su edad: '); de números Nombre=input('Ingrese su nombre:' , 's'); Espera una Cadena (string) Salida: Lleva el especificador de formato disp('Bienvenido a matlab'); Puede utilizarse para mostrar Una cadena
Puede utilizarse para mostrar el contenido de una variable (escalar,vector,matriz),etc.
Especificadores de formato (indican el tipo de dato que se mostrara)
Argumento(s) a mostrar
/n para salto de línea /t para hacer espaciamientos /r retorno de carro
Para mas información teclear: doc fprintf
Ejercicios propuestos (Taller 1) 1.
Realizar un programa que calcule la edad de un usuario, pidiendo como datos de entrada su mes y año de nacimiento
2.
Generar un conversor de unidades, para transformar un valor en metros a otra unidad de longitud (mm,cm,pies y pulgadas),utilice la estructura de control mas adecuada para no realizar comparaciones innecesarias.
14. FUNCIONES • Las funciones son módulos o partes en que se divide un programa, permiten
que este sea mas fácil de entender, ubicar rápidamente errores, evitar redundancia en el código, en fin, da facilidad al programador. • Hay muchas razones para crear una función además de las funciones que
incluye MATLAB: 1. 2. 3.
4. 5. 6. 7.
Evitar código que se repite Limitar el efecto de cambios, para secciones especificas de un programa. Promover la reutilización de partes del programa en otros. Aislar operaciones complejas. Aumentar la portabilidad. Hacer más fácil el desarrollo y aislar los errores. Aumentar el desempeño, por que cada función puede ser optimizada.
• Las funciones en matlab poseen tres elementos principales: Argumento(s)
de salida o valores de entrada, el nombre de la función y Argumento(s) de entrada o valores de salida.
La función posee argumentos de entrada, los cuales toma para realizar los cálculos u operaciones necesarias, estos cálculos generan un resultado y pueden ser `devueltos' en las variable(s) de salida de la función.
• El nombre de la función es la palabra reservada que se utiliza para
`invocar' la función para que realice las operaciones para las cuales se ha creado. El nombre de la función tiene mucho que ver con la operación que esta realiza, con el fin de facilitar la memorización (nemotécnica). • Los argumentos de entrada son los dato(s) que toma la función para realizar
los cálculos necesarios. En algunas ocasiones es necesario especificar varios valores de entrada, en este caso, cada uno de los valores de entrada se separan por una coma (,). • Los argumentos de salida son resultados que la función entrega. En este
caso se define el nombre(s) de la(s) variable(s) en el cual(es) se van a guardar los datos de salida o respuestas de la función. Cuando solo hay un argumento de salida, no es necesario encerrar la respuesta en corchetes cuadrados, pero cuando la función `devuelve' varios valores, es necesario encerrarlos en los corchetes y separar el nombre de las variables por comas (,).
Crear una nueva funcion • Sintaxis general de una función en matlab Argumentos de salida
Nombre de la función
Argumentos de entrada
function [ args_salida ] = myfuncion( args_entrada ) %Myfuncion El resumen de la función va aquí Aquí van las % La Explicacion detallada va aquí Instrucciones que ejecutara la función cuando se le end invoque.
Sintaxis de una función con dos argumentos de entrada y dos de salida. function [Vsal1,Vasl2] = Myfuncion(Ventr1,Ventr2) % Comentarios % Después de los comentarios van las Instrucciones end
Sintaxis de una función con dos argumentos de entrada y uno de salida.
function Vsal1= Myfuncion (Ventr1,Ventr2) % Comentarios % Después de los comentarios van las Instrucciones end
Invocar o llamar a una función: Para llamar o invocar una función, para que realice su tarea, escribimos el nombre de la función, y entre paréntesis indicamos el o los argumento(s) de entrada, cuando es mas de uno se separan por una coma.
NombreFuncion(arg_ent1, arg_ent1)
Funciones predefinidas en Matlab Funciones que operan sobre escalares
Funciones que operan sobre vectores
Funciones que construyen matrices
Funciones de exploración
Funciones sobre cadenas de caracteres
15. MATEMATICA SIMBOLICA • Uno de los ToolBox incluidos por MATLAB, es el Symbolic ToolBox (ToolBox
de Matematica Simbolica), y añade a MATLAB la capacidad de realizar cálculos simbólicos. • Lo primero que se debe hacer para manipular expresiones simbólicas, es
definir las variables que esta posea, por medio del comando 'syms' seguido por las variables separadas por espacios: • >> syms a x % Definición de las variables („a‟ y „x‟) como simbólicas
• y después se pueden definir las operaciones simbólicas: • >> f = a*cos(x)^2 + a*sin(x)^2
• >> diff(f) % Derivada de la funcion respecto a (x) (por defecto) • >> diff(f,a) % Derivada de la funcion respecto a (a) • >> int(f) % Integral de la funcion f • >> int(f,0,1) % Integral de la funcion f (evaluada entre 0 y 1) • >> simplify(f) % Simplifica la funcion • Una vez definidas podemos realizar con ellas las operaciones habituales:
calcular su valor en un punto, derivarlas, integrarlas, etc. • Si en una expresión simbólica queremos sustituir una variable por otra o por una constante para calcular su valor en un punto, utilizamos el comando subs: • subs(f, antiguas, nuevas)
• Sustituye las variables antiguas por las nuevas. Si hay más de una variable
las escribiremos entre llaves y separada por comas.
• En resumen:
16. GRAFICACION • Las funciones graficas se pueden agrupar en tres categorías: administración
de figuras, generación de curvas y superficies y anotaciones y características graficas.
Graficación en 2D
Graficación en 3D
• Al utilizar las funciones para graficar, matlab crea una figura o venta para
mostrar los gráficos (ventana grafica). Por ejemplo: Nombre (por defecto) y numero de figura
Ventana creada por matlab para contener gráficos
• Algunas funciones que trabajan sobre ventanas graficas se muestran
acontinuacion.
Permite dividir la ventana gráfica en una matriz de sub-ventanas gráficas de tamaño ixj, activando para dibujar la k-ésima de ellas. Indica numero de filas
Indica numero de columnas
Por ejemplo:
>> subplot(1,3,1)
Indica la posición
Divide la ventana grafica en una matriz de subventanas de1 fila y 3 columnas, e indica que se graficara en la primera subventana,es decir indicamos la subventana que se mantendrá activa (en este caso la primera).
Indicamos que la segunda subventana se mantendrá activa para graficar
>> subplot(1,3,2)
Subventana activa
Indicamos que la tercera subventana se mantendrá activa para graficar.
>> subplot(1,3,2)
Subventana activa
• Para graficar en cada una de las subventanas se haría lo
siguiente:
17. INTERFAZ GRAFICA DE USUARIO • Una interfaz gráfica de usuario, GUI (del inglés graphical user interface), es
un sistema interactivo que posibilita, a través del uso y la representación del lenguaje visual, una interacción amigable con un sistema informático.
• La Usabilidad, esta disciplina tiende a trabajar en el contexto del Diseño de
la Interacción, definiendo los aspectos técnicos de uso de la aplicación y evaluando las consideraciones y principios estándar de uso de un sistema interactivo. En cambio, la Comunicabilidad se acerca al campo de desarrollo del Diseño de la Información, área disciplinar que se centra en trabajar en la forma de articular el texto y la información con la imagen.
Objetivos de una interfaz • Facilitar la interacción usuario – computadora. • Comunicar de manera clara y concisa las funciones de uso del sistema. • Proporcionar un entorno visual sencillo para permitir la comunicación con el
sistema operativo de una máquina o computador. • Una interfaz requiere de atención, y cuando interactuamos esperamos que el
sistema nos guíe en el cumplimiento de nuestros objetivos. • Para trabajar en la construcción de una interfaz debemos tener claramente
identificados los objetivos funcionales e interactivos del sistema. Son estos objetivos los que permitirán establecer los antecedentes claves de la relación sincrónica de tres subsistemas: Usuario, Contenido, Contexto.
GUIDE de matlab • GUIDE (Graphical User Interface Development Environment). • El Entorno de Desarrollo de Interfaz Grafica de Usuario, provee un conjunto
de herramientas para el diseño de Interfaces graficas de usuario.
• Abrir GUIDE ( Hay 3 Maneras) :
Menu File-> New -> GUI
Creamos una GUI en blanco:
El Editor de Diseño Barra de herramientas
Paleta de componentes
Área de diseño
Herramientas Alinear Editor de objetos Menús
Editor de orden
Editor de Archivo M
Barra de Herramientas
Inspector de propiedades
Examinador De objetos
Guardar cambios Y correr GUI
Controles (objetos)
Características
Identidad Propiedades
Un Código que lo define Acción a la que responden (evento)
Controles
Inspector de propiedades 2
Nombre del objeto seleccionado
1
Nombre de las Propiedades o atributos
Valores de las Propiedades
Propiedades comunes en los controles • String : Para los check boxes, editable text, push buttons, radio buttons,
static text, and toggle buttons, el texto que se muestra en el objeto. Para los list boxes y pop-up menú, el conjunto de elementos o artículos del objeto. • Tag : Etiqueta del objeto especificada por el usuario. La propiedad tag
proporciona una manera de identificar objetos gráficos con una etiqueta especificada por el usuario y nos sirve para hacer referencia a un control dentro del código de matlab. • FontSize: Tamaño de la fuente. Un numero que especifica el tamaño de la
fuente que va a ser mostrado en la cadena, en unidades determinadas por la propiedad FontUnits. • Enable: Activa o desactiva el control. Esta propiedad controla como los
controles responden a un click del mouse, se puede usar para activar o desactivar un control.
• Enable: Activa o desactiva el control. Esta propiedad controla como los
controles responden a un click del mouse, se puede usar para activar o desactivar un control. • ForegroundColor: Color de texto. Esta propiedad determina el color de el
texto definido por la propiedad String. Especifica un color usando un vector de tres elementos RGB o un nombre predefinido en Matlab. • Value • Valor actual de el control. Difiere para cada control: • Check boxes - ponen su propiedad Value (valor) en Max (el máximo) cuando están
seleccionados y en Min (el mínimo) cuando no están seleccionados. • List boxes - ajustan su valor a un vector correspondiente a los elementos de la lista
.
• Pop-up menú - ajustan su valor a un índice de artículos seleccionados , donde 1
corresponde al primer elemento del menú. • Radio buttons - ponen su propiedad Value (valor) en Max (el máximo) cuando
están seleccionados y en Min (el mínimo) cuando no están seleccionados. • Sliders - ajustan su valor al numero indicado por la posición de el slider
(deslizador) • Toggle buttons - ponen su propiedad Value en Max cuando estan presionados
(seleccionados) y en Min cuando no están seleccionados.
• - Editable text, Frames, Push buttons, y Static text no usan esta propiedad
Obtener y modificar el valor de una propiedad • Obtener el valor de una propiedad:
utpl= get(handles.text1,'String''); Asignamos el Valor leído a una variable
Manejar el objeto text1
Propiedad a obtener
• Modificar el valor de una propiedad:
set(handles.text1,'String', „Un string') Manejar el objeto text1
Propiedad a modificar
Valor que tomara la propiedad, el valor puede provenir de una variable.
Componentes de GUI • Una aplicación GUIDE consta de dos archivos: .m y .fig. El archivo .m es el
que contiene el código correspondiente al comportamiento de los controles de la interfaz y el archivo .fig contiene el código referente a la descripción de los elementos gráficos.
Archivo .fig
• •
Descripción de la GUI Código referente a la representación grafica de los controles
Archivo .m
Código referente al comportamiento de los controles y al control de la GUI
Programación de los controles • Cuando interactuamos con un control, este puede desencadenar una acción
o un conjunto de acciones . Por ejemplo cuando hacemos clic sobre un botón este podría mostrarnos un mensaje de bienvenida. • Las acciones que se pueden asociar a un control se agrupan en funciones.
1
Clic derecho en el control
Función callback asociada al botón graficar
3 2
Archivo .m
• Cada control tiene una función callback, la cual se ejecuta cuando se
realiza un evento sobre el control. • Por ejemplo para el Push button, se ejecutaría su funcion callback cuando
realicemos un clic sobre el; Para un check box se ejecutaría su función callback asociada cuando lo activamos o desactivamos.
Hacemos clic en el botón Graficar
1
Aquí van las Instrucciones que ejecutara la función cuando se le invoque.
2
Matlab ejecuta o invoca la función Callback asociada al control en caso de que ya este definida.