Download - Tema I Introducción al MatLab
![Page 1: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/1.jpg)
Tema I
Introducción al MatLab
Profs. Dres. Sixto RomeroFrancisco J. Moreno
Master en Ingeniería de Control, Sistemas Electrónicos e Informática Industrial2007-2008
![Page 2: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/2.jpg)
El Asistente Matemático MatLab
![Page 3: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/3.jpg)
Sumario
1.1. Introducción
1.2. El entorno de trabajo de MatLab
1.2.1. El Escritorio de Matlab (MatlabDesktop)
1.2.2. El menú inicio
1.2.3. Command Window
1.2.4. Command History Browser
![Page 4: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/4.jpg)
1.2.5. Current Directory Browser
1.2.6. Workspace Browser y Array Editor
1.2.7. El Editor-Debugger
1.3. Salvas de estados y variables en una sección (save, load, diary)
1.4. Medidas de tiempo y esfuerzo de cálculo
Sumario
![Page 5: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/5.jpg)
Introducción
MatLab es un asistente matemático de gran capacidad para el cálculo y la visualización cuyo nombre proviene de las palabras Matrix-Laboratory.
Aunque fue desarrollado inicialmente (1984) para el trabajo exclusivo con matrices también puede trabajar con escalares (reales y complejos) así como con cadenas de caracteres.
![Page 6: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/6.jpg)
Introducción
Matrix-Laboratory•Alta capacidad de cálculo numérico
•Visualización
•Cálculo simbólico
•Lenguaje propio
Matrices Escalares Cadenas
![Page 7: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/7.jpg)
Potencialidades
1. Posee un lenguaje de alto desempeño bastante fácil de aprender.
2. Posee una elevada interacción con los SoftWare existentes (Maple, Excel).
3. Posibilidad de ser instalado sobre diferentes SO.
4. Alrededor de este SoftWare se nuclea una comunidad de más de 1 000 000 de usuariosentre esttes y especialistas.
![Page 8: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/8.jpg)
Potencialidades
5. Posee ayudas tanto On-line como Off-linede inmensas prestaciones.
6. Existe un centro de recursos arbitrado que almacena organizadamente la experiencia de múltiples especialistas de todo el mundo.
7. Las librerías han sido exquisitamente validadas y en ocasiones programadas por los propios descubridores (ej. WaveletsToolbox).
![Page 9: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/9.jpg)
Debilidades
1. Lenguaje interpretado.
2. Aunque es muy rápido en los cálculos utilizando código nativo en otros cálculos pudiera ser bastante más lento que utilizando código C++ u otro.
3. Aunque posee herramientas para la exportación de código, estas no son del todo eficiente (MatLab Compiler, MatLabComBuilder).
![Page 10: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/10.jpg)
El desktop de MatLab
![Page 11: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/11.jpg)
El desktop de MatLab
MenMenúú principalprincipal
![Page 12: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/12.jpg)
El desktop de MatLab
MenMenúú de de acceso racceso ráápidopido
![Page 13: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/13.jpg)
El desktop de MatLab
Ventana de Ventana de comandoscomandos
![Page 14: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/14.jpg)
El desktop de MatLab
Espacio y directorio Espacio y directorio de trabajode trabajo
![Page 15: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/15.jpg)
El desktop de MatLab
Historial de trabajoHistorial de trabajo
![Page 16: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/16.jpg)
El desktop de MatLab
Novedad de la v_7.0Barra de Shortcuts
![Page 17: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/17.jpg)
El desktop de MatLab
MenMenúú de iniciode inicio
![Page 18: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/18.jpg)
Menú de inicio
![Page 19: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/19.jpg)
Menú de acceso rápido
![Page 20: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/20.jpg)
Barra de Shortcuts
![Page 21: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/21.jpg)
Creación de Shortcuts (ejemplo)
![Page 22: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/22.jpg)
La ventana de comandos
Definir “variables”Ejecutar instruccionesMostrar resultadosLlamada a guionesLlamada a funciones
![Page 23: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/23.jpg)
Historial de comandos
![Page 24: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/24.jpg)
Directorio actual de trabajo
![Page 25: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/25.jpg)
El espacio de trabajo
Identificadores Valores Tipo de dato
![Page 26: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/26.jpg)
Editor de arreglos
![Page 27: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/27.jpg)
El editor-debugger
![Page 28: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/28.jpg)
La ayuda de MatLab
![Page 29: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/29.jpg)
Demos de MatLab
![Page 30: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/30.jpg)
Ayuda y recursos “on-line”
![Page 31: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/31.jpg)
Ayuda y recursos “on-line”
![Page 32: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/32.jpg)
Ayuda y recursos “on-line”
![Page 33: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/33.jpg)
Recursos de dificil acceso
![Page 34: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/34.jpg)
Salvas de estados y variables
Comando “save”
Se emplea para guardar en disco el espacio de trabajo o variables particulares que existan en este.
Sintaxis:save(‘filename’, ‘var-1’, ..., ‘var-n’, formato);
![Page 35: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/35.jpg)
Salvas de estados y variables
Comando “load”
Permite cargar variables existentes en un fichero en el espacio de trabajo.
Sintaxis:load(‘filename’, ‘var-1’, ..., ‘var-n’);
![Page 36: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/36.jpg)
Salvas de estados y variables
Comando “diary”
Este comando posibilita guardar un record completo de todas las acciones realizadas en la ventana de comandos.
Sintaxis:diary on; %Activado
diary off; %Desactivado
![Page 37: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/37.jpg)
Tiempo y esfuerzo de cálculo
En MatLab está abierta la posibilidad de obtener los tiempos de cálculo de una forma muy sencilla para el usuario, siendo esto en muchas ocasiones de suma importancia.
Para este fin se emplean las funciones:
cputime; etime y tic ops toc
![Page 38: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/38.jpg)
Tiempo de cálculo (ejemplo)
Se desea resolver un sistema lineal arbitrario con 1000 Ecs. de la forma:
Ax=b ⇒ x=A-1b = A\b>> n=1000;
>> A=rand(n);
>> b=rand(n,1);
>> x=zeros(n,1);
>> tiempoIni=clock; x=A\b; tiempo=etime(clock, tiempoIni)
>> time=cputime; x=A\b; time=cputime-time
>> tic; x=A\b; toc
![Page 39: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/39.jpg)
Bibliografía
1. Aprenda Matlab 7.0 como si estuviera en primero
2. La ayuda de Matlab 7.0
3. Ver en la sección “demos” de la ayuda de Matlab:
• “Desktop Tools and Development Environment” (primeros 5 videos)
• “New Features in Version 7”(primer video)
![Page 40: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/40.jpg)
Tema II
Operaciones con vectores y matricesProfs. Dres. Sixto Romero
Francisco J. MorenoMaster en Ingeniería de Control, Sistemas Electrónicos e Informática Industrial
2007-2008
![Page 41: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/41.jpg)
Sumario
2.1. Definición de matrices desde el teclado
2.2. Operaciones con matrices
2.3. Matrices predefinidas
2.4. Direccionamiento de matrices y vectores. El operador (:) y la función (cat)
2.5. Operadores relacionales
2.6. Operadores lógicos
![Page 42: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/42.jpg)
Definición de matrices
Las matrices son un tipo común de variable que es empleado en la mayoría de los lenguajes de programación. En MatLab estas se convierten en el centro de atención.
Por convenio emplearemos mayúscula para representar matrices y minúscula para vectores y escalares.
![Page 43: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/43.jpg)
Definición de matrices
Las matrices se definen por filas, los elementos de la fila se separan por espacios o comas (,) mientras que las filas van separadas por punto y coma (;)
Ejemplos:
A=[1,2,3; 4,5,6; 7,8,9]
B=[1 2 3; 4 5 6; 7 8 9]
Se ve en pantalla:
![Page 44: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/44.jpg)
Definición de matrices
Observación 1
Ejemplos:
Los vectores son casos particulares de matrices donde el número de filas o columnas es igual a 1.
Vector fila Vector columna
![Page 45: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/45.jpg)
Definición de matrices
Observación 2
Ejemplo:
Una vez definida la matriz esta pasa a su espacio de trabajo (Workspace) y estarádisponible para realizarce cualquier operación.
![Page 46: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/46.jpg)
Definición de matrices
Observación 3
Ejemplo:
MatLab introduce por defecto una variable llamada (ans) de “answer”sobre la cual también se puede operar.
![Page 47: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/47.jpg)
Definición de matrices
Observación 4
Ejemplo:
En MatLab se permite la creación de matrices vacías.
![Page 48: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/48.jpg)
¿Cómo acceder a los valores?
Los elementos de una matriz se acceden poniendo los 2 índices entre paréntesis separados por coma (Ej. A(1,2) o A(i,j)).Ejemplo:
![Page 49: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/49.jpg)
¿Cómo acceder a los valores?
Observación 1
Ejemplo:
Si estamos trabajando con vectores bastaría colocar un solo índice.
![Page 50: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/50.jpg)
¿Cómo acceder a los valores?
Observación 2
Ejemplo:
Aunque las matrices se introducen por filas estas se almacenan por columnas, luego se podría acceder a sus elementos empleando un solo índice.
![Page 51: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/51.jpg)
Operaciones con matrices
Las matrices se operan a través de operadores o funciones. Veamos ahora los operadores.
+ Adición
- Substracción
* Multiplicación
‘ Traspuesta
^ Potencia
/ División (derecha)
\ División (izquierda)
.* y .^ Mult. y Potenciación elemento a elemento
./ y .\Div. (derecha y izquierda)elemento a elemento
![Page 52: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/52.jpg)
Operaciones con matrices
Ejemplo 1:
![Page 53: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/53.jpg)
Operaciones con matrices
Ejemplo 2:
![Page 54: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/54.jpg)
Matrices predefinidas
eye(n) Matriz unitaria (n x n)zeros(n) Matriz de ceros (n x n)
zeros(n,m) Matriz de ceros (n x m)ones(n) Matriz de unos (n x n)
ones(n,m) Matriz de unos (n x m)
rand(n,m) Matriz de números aleatorios entre 0 y 1 (n x m)linspace(x1,x2,n)
Genera un vector con n valores entre x1 y x2igualmente espaciados
magic(n) Genera una matriz mágica (n x n)
rand(n) Matriz de números aleatorios entre 0 y 1 (n x n)
![Page 55: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/55.jpg)
Operaciones con matrices
Ejemplos:
![Page 56: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/56.jpg)
Operaciones con matrices
Ejemplos:
![Page 57: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/57.jpg)
Direccionamiento de matricesLos elementos de una matriz pueden ser direccionados a partir de otros vectores.Ejemplo:
![Page 58: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/58.jpg)
Direccionamiento de matrices
Ejemplo:
Observación 1En el caso en que trabajásemos con vectores estos se direccionarían mediante otro vector de posiciones.
![Page 59: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/59.jpg)
Direccionamiento de matrices
Observación 2Como los elementos de una matriz se almacenan como columnas podemos emplear esta característica para direccionarlas a través de un vector.
![Page 60: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/60.jpg)
Direccionamiento de matricesEjemplo:
![Page 61: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/61.jpg)
El operador (:)
El operador (:) es utilizado paraespecificar rangos, su forma de empleoes muy simple y sus beneficios inmensos.
<vector>=[val_ini : paso : val_fin];Forma de empleo:
Ejemplo:
![Page 62: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/62.jpg)
El operador (:)
El operador (:) se muestra mucho más potente cuando se trabaja con matrices.
![Page 63: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/63.jpg)
El operador (:)
Extracción de submatrices.
![Page 64: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/64.jpg)
El operador (:)
Extracción de una columna.
![Page 65: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/65.jpg)
El operador (:)
Extracción de una fila (última).
![Page 66: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/66.jpg)
El operador (:)
Eliminación de una columna.
![Page 67: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/67.jpg)
El operador (:)
Es prudente que se ejercite el trabajo en este operador probando todas las combinaciones posibles dada su importancia para el trabajo posterior.
Nota
![Page 68: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/68.jpg)
La función (cat)
La función (cat) se emplea para concatenar matrices a lo largo de una dimensión especificada.
Al igual que el operador (:) es de una gran utilidad cuando se trabaja con matrices.
![Page 69: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/69.jpg)
La función (cat)
Ejemplo:
![Page 70: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/70.jpg)
Operadores relacionales
< Menor que<= Menor o igual a> Mayor que
>= Mayor o igual a== Igual a~= Distinto de
![Page 71: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/71.jpg)
Operadores lógicos
&& Conjunción|| Disyunción~ Negación
xor Disyunción exclusiva
![Page 72: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/72.jpg)
Operadores lógicos
all(v) Comprueba si todos los elementos del vector (v) cumplen la condición. Devuelve 0 o 1
all(A) Se aplica por separado a cada columna de (A). El resultado es un vector de ceros y unos.
any(v) Comprueba si alguno de los elementos del vector (v) cumplen la condición. Devuelve 0 o 1
find(v) Determina los índices de elementos de (v) que cumplen la condición.
any(A) Se aplica por separado a cada columna de (A). El resultado es un vector de ceros y unos.
find(A) Cuando se aplica a una matriz esta se consideracomo un vector (una columna traz otra)
![Page 73: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/73.jpg)
Tema III
Gráficas con MatLab
Profs. Dres. Sixto RomeroFrancisco J. Moreno
Master en Ingeniería de Control, Sistemas Electrónicos e Informática Industrial2007-2008
![Page 74: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/74.jpg)
![Page 75: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/75.jpg)
Sumario3.1. Gráficas en 2D
3.1.1. Introducción. Representación gráfica con datos
3.1.2. Curvas en explícitas, paramétricas y polares: Función plot
3.1.3. Estilos de línea y marcadores en la función plot
3.1.4. Añadir curvas a un gráfico ya existente
3.1.5. Comando subplot
3.1.6. Función fplot
![Page 76: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/76.jpg)
Sumario3.2. Gráficas en 3D
3.2.1. Dibujo de líneas: función plot3
3.2.2. Mallados: Funciones meshgrid, mesh y surf
3.2.3. Líneas de contorno: funciones contoury contour3
![Page 77: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/77.jpg)
3.1. Gráficas en 2D3.1.1. Introducción
•MatLab proporciona una variedad importante de funciones para representar gráficamente datos vectoriales tanto en 2D como en 3D.
• Adicionalmente pone a disposición de usuario otro grupo de funciones para la manipulación e impresión de los gráficos creados.
![Page 78: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/78.jpg)
3.1. Gráficas en 2D
• MatLab permite graficas de curvas planas y superficies, posibilitando la agrupación y la superposición.
• Permite trabajar con colores, rejillas, marcos, etc., en los gráficos.
• MatLab es un software matemático con elevadas prestaciones gráficas.
![Page 79: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/79.jpg)
3.1. Gráficas en 2D
• MatLab permite realizar gráficos de barras, líneas, estrellas, histogramas, poliedros, mapas geográficos y animaciones.
![Page 80: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/80.jpg)
3.1. Gráficas en 2D3.1.1. Representación gráfica con datos: La creación de un gráfico suele acoplarse a los siguientes pasos
Preparar los datos
x = 0:0.02:10; y1=x ;y2=x.^2;y3=x.^3;
Elegir ventana y situar posición
figure(1); subplot(2,2,1)
Usar función de gráfico
h=plot(x,y1,x,y2,x,y3);
Sitúa las propiedades
especificadas en el objeto ‘h’
set(h,’LineWidth’,2,{‘LineStyle’};set(h,’{Color’},{‘r’,’g’,’b’})
Elegir características de líneas y marcadores
Situar anotaciones. Etiquetas y
leyendas
xLabel(‘Tiempo’) yLabel(’Amplitud’)legend(h,’Primero’,’Segundo’,’Tercero’)Title(‘Funciones Enteras’)
![Page 81: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/81.jpg)
3.1. Gráficas en 2D
3.1.1. Gráficos básicos: barras, sectores, histogramas, racimo, flechas,etc.,
bar(Y)Gráfico de barras verticales relativo al vector de frecuencia Y. Si Y es una matriz se obtiene el gráfico de barras múltiple para cada fila de Y
barh(…) Gráfico de barras horizontalespie(Y) Gráfico de pastel o sectores relativo al vector Xstairs(Y) Gráfico escalonado relativo al vector Y
hist(Y)Dibuja el histograma relativo al vector de frecuencias Y. Si Y es una matriz, se construye un histograma para cada una de sus columnas.
![Page 82: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/82.jpg)
3.1.1. Gráficos básicos: barras, sectores, etc.,
hist(Y,x)Dibuja e histograma relativo al vector de frecuencias Y usando tantas cajas comoelementos tiene el vector “x”
stem(Y)Dibuja el gráfico de racimo relativo al vector Y. Cada punto de Y está unido al eje OX por unalínea vertical
rose(Y) Dibuja el histograma angular relativo al vector Y, de ángulos en radianes.
compass(Z)
Dibuja un diagrama de flechas que salen del origen y cuya magnitud y dirección vienen determinadas por el módulo y el argumento de los números complejos componentes de Z
3.1. Gráficas en 2D
![Page 83: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/83.jpg)
3.1.1. Gráficos básicos: BARRAS
-4 -3 -2 -1 0 1 2 3 40
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
>> x=-3:0.2:3;>> bar(x,exp(-x.^2))
3.1. Gráficas en 2D
![Page 84: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/84.jpg)
3.1.1. Gráficos básicos: BARRAS
>> x=-3:0.2:3;>> barh(x,exp(-x.^2))
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-4
-3
-2
-1
0
1
2
3
4
3.1. Gráficas en 2D
![Page 85: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/85.jpg)
3.1.1. Gráficos básicos: BARRAS
>>Y=round(rand(5,3)*250);>> bar(Y’,group’)>> bar(Y’,’stack’)
3.1. Gráficas en 2D
![Page 86: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/86.jpg)
3.1.1. Gráficos básicos: SECTORES-PASTEL
>> x=[12 23 1.5 5.5 67 89];>> pie(x)
3.1. Gráficas en 2D
![Page 87: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/87.jpg)
3.1.1. Gráficos básicos: SECTORES-PASTEL
3.1. Gráficas en 2D
>> x=[12, 56, 4, 5.5, 67];>> y=[0 0 0 1 1];>> pie(x,y)
![Page 88: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/88.jpg)
3.1.1. Gráficos básicos: ESCALONADO
3.1. Gráficas en 2D
>> x=-10:0.1:10;>> stairs(x,exp(-x.^2))
![Page 89: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/89.jpg)
3.1.1. Gráficos básicos: ESCALONADO
3.1. Gráficas en 2D
>> x=-10:0.4:10;>> stairs(x,exp(-x.^2))
![Page 90: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/90.jpg)
3.1.1. Gráficos básicos: HISTOGRAMA
>> y=rand(1000,1)*2199;>> hist(y)
3.1. Gráficas en 2D
![Page 91: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/91.jpg)
3.1.1. Gráficos básicos: HISTOGRAMA
>> y=randn(1000,1)*2199;>> hist(y)
3.1. Gráficas en 2D
![Page 92: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/92.jpg)
3.1.1. Gráficos básicos: HISTOGRAMA
>> y=randn(1000,1)*2199;>> hist(y,20)
>> y=randn(1000,1)*2199;>> hist(y,10)
3.1. Gráficas en 2D
![Page 93: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/93.jpg)
3.1.1. Gráficos básicos: RACIMO
>> y=randn(20,2);>> stem(y);
3.1. Gráficas en 2D
![Page 94: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/94.jpg)
3.1.1. Gráficos básicos: HISTOGRAMA ANGULAR
>>y=randn(1000,1)*pi;>> rose(y));
3.1. Gráficas en 2D
![Page 95: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/95.jpg)
3.1.1. Gráficos básicos: FLECHA
>> z=eig(rand(4,4));>> figure, compass(z)
3.1. Gráficas en 2D
![Page 96: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/96.jpg)
3.1.2. Curvas en explícitas, paramétricas y polares: Funciones más empleadas en la representación de datos
plot(X,Y) Dibuja el conjunto de puntos (X,Y), donde X e Y son vectores filas.
loglog(X,Y) Crea gráfico con escala logaritmica en ambos ejes
semilogx(X,Y) Crea gráfico con escala logaritmica en el ejeX y lineal en el eje Y
semilogy(X,Y) Crea gráfico con escala logaritmica en el ejeY y lineal en el eje X
3.1. Gráficas en 2D
![Page 97: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/97.jpg)
3.1.2. Funciones plot(x,y)
3.1. Gráficas en 2D
>> x=[0,1,2,3,4,5];>> y=[0,1,4,9,16,25];>> plot(x,y)
![Page 98: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/98.jpg)
3.1.2. Funciones plot(x,y)
3.1. Gráficas en 2D
>> x=0:0.07:20;>> y=sin(x+9).*exp(-0.7*x);>> plot(x,y)
![Page 99: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/99.jpg)
3.1.2. Funciones plot(x,y)3.1. Gráficas en 2D
![Page 100: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/100.jpg)
3.1.2. Funciones semilogx(x,y)
3.1. Gráficas en 2D
>> x=1:0.01:100;>> y=sin(x);>> semilogx(x,y)
![Page 101: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/101.jpg)
3.1.2. Funciones semilogy(x,y)
3.1. Gráficas en 2D
>> x=1:0.01:100;>> y=sin(x);>> semilogy(x,y)Warning: Negative data ignored.
![Page 102: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/102.jpg)
3.1.2. Funciones en paramétricas
3.1. Gráficas en 2D
>> t=0:0.01:2*pi;>> x=4*cos(t)-cos(4*t)>> y=4*sin(t)-sin(4*t);>> plot(x,y)
![Page 103: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/103.jpg)
3.1.2. Funciones en polares
3.1. Gráficas en 2D
>> t=0:0.001:2*pi;>> r=sin(2*t).*cos(2*t);>> polar(t,r)
![Page 104: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/104.jpg)
title(´título´) Agrega untítulo al dibujoxlabel(´...´) Agrega un título al eje ´X´. xlabel off lo eliminaylabel(´...´) Agrega un título al eje ´Y´. ylabel off lo elimina
legend() Define rótulos para las líneasgrid Activa la cuadrícula en el dibujo
3.1. Gráficas en 2D3.1.2. ¿Cómo añadir información al gráfico?
![Page 105: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/105.jpg)
3.1.2. Añadir información en Funciones en implícitas
3.1. Gráficas en 2D
>> x=-2*pi:0.1:2*pi;>> ezplot('x^2-y^4')
![Page 106: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/106.jpg)
3.1.2. Añadir información desde el entorno de trabajo: Command Window
3.1. Gráficas en 2D
>> x=0:0.002:2*pi;>> y=exp(x+2);>> plot(x,y)>> title('Función Exponencial');>> xlabel('Dominio de definición');>> ylabel('Recorrido de la función');>> legend('f(x)=exp(x)');
![Page 107: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/107.jpg)
3.1. Gráficas en 2D3.1.3.Estilos de línea y marcadores
![Page 108: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/108.jpg)
3.1. Gráficas en 2D3.1.3. Ejemplo de línea y marcadores
>> x=0:0.3:2*pi;>> y=exp(x);>> plot(x,y,'-r^');
![Page 109: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/109.jpg)
3.1. Gráficas en 2D3.1.3. Ejemplo de línea y marcadores
>> x=0:0.03:2*pi;>> y=exp(x);>> plot(x,y,'-r^');
![Page 110: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/110.jpg)
3.1. Gráficas en 2D3.1.4. Añadiendo curvas a un gráfico
Para añadir nuevas líneas (curvas) a un gráfico ya existente se emplean los comandos: hold on y hold off.El comando hold on permite que se mantengan los gráficos existentes a pesar de que pueda ocurrir un reescalamiento. La instrucción hold off elimina esta posibilidad.
![Page 111: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/111.jpg)
3.1. Gráficas en 2D3.1.4. Añadiendo curvas a un gráfico
>> x=0:0.1:2;>> y1=exp(x);>> t=0:0.1:2*pi;y2=sin(t);>> plot(x,y1,'-r');hold on>> plot(t,y2,':b');hold off
![Page 112: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/112.jpg)
3.1. Gráficas en 2D3.1.5. Comando subplot
subplot(m,n,p)
Dibuja la ventana gráfica en mxn ventanas y cooca el gráfico correspondiente en la ventana p-ésima, empezando a contar por la parte superior izquierda y de izquiewrda a derecha hasta acabar la línea, para pasar a la siguiente. La utilidad de este comando en la representación de dibujar en cada celdauna figura diferente
![Page 113: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/113.jpg)
3.1. Gráficas en 2D3.1.5. Ejemplo del Comando: subplot
>> x=(0.1:0.1:4*pi);>> y=sin(x);z=cos(x);t=exp(x);s=log(x);>> subplot(2,2,1);>> plot(x,y), axis([0 2*pi -1 1]),title('sin(x)')>> subplot(2,2,2);>> plot(x,z), axis([0 2*pi -1 1]),title('cos(x)')>> subplot(2,2,3);>> plot(x,t), axis ([0 2*pi 0 59]),title('exp(x)')>> subplot(2,2,4);>> plot(x,s), axis ([0.1 4*pi -10 5]),title('log(x)')
![Page 114: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/114.jpg)
3.1. Gráficas en 2D3.1.5. Ejemplo del Comando: subplot
![Page 115: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/115.jpg)
3.1. Gráficas en 2D3.1.5. Ejemplo del Comando: subplot
>> subplot(2,2,1);>> ezplot('sin(x)',[-2*pi 2*pi])>> subplot(2,2,2);>> ezplot('cos(x)',[-2*pi 2*pi])>> subplot(2,2,3);>> ezplot('csc(x)',[-2*pi 2*pi])>> subplot(2,2,4);>> ezplot('sec(x)',[-2*pi 2*pi])
![Page 116: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/116.jpg)
3.1. Gráficas en 2D3.1.5. Ejemplo del Comando: subplot
![Page 117: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/117.jpg)
A diferencia de la función plot donde había que especificar un vector de valores [x,y] a la función fplot solo hay que especificarle el nombre de una función o fichero donde encontrarla sin preocuparnos por detalles como el de la pendiente por citar tan solo un ejemplo.
3.1. Gráficas en 2D3.1.6. Función: fplot
![Page 118: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/118.jpg)
3.1. Gráficas en 2D3.1.6. Función: fplot
fplot(‘f’,[xmin,xmax])Dibuja la funcion en el intervalo de variación de ‘x’dado
fplot(‘f’,[xmin,xmax], ymin, ymax],S)
Dibuja la funcion en losintervalos de variación de ‘x’ e ‘y’ dados, con las opciones de color y caracteres dadas por S
fplot([‘f1’,’f2’,..’fn’],[xmin,xmax], ymin, ymax],S)
Dibuja las funciones en losintervalos de variación de ‘x’ e ‘y’ dados, con las opciones de color y caracteres dadas por S
![Page 119: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/119.jpg)
3.1. Gráficas en 2D3.1.6. Función: fplot
fplot(‘f’,[xmin,xmax]……t) Dibuja la funcion con la tolerancia ‘t’
fplot(‘f’,[xmin,xmax], ymin, ymax],n)
Dibuja la funcion con la tolerancia ‘t’ como ‘n+1’puntos como mínimo
![Page 120: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/120.jpg)
3.1. Gráficas en 2D3.1.6. Ejemplos de la Función: fplot
>>fplot('[sin(x), sin(2*x), sin(3*x)]', [0, 2*pi],'*');>> legend('Sen(x)','Sen(2x)’,'Sen(3x)')
![Page 121: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/121.jpg)
3.1. Gráficas en 2D3.1.6. Ejemplos de la Función: fplot
>> fplot('[sin(x), sin(2*x), sin(3*x)]', [0, 2*pi],'-','o','*');>> text(3,0.8, 'y=sen(2x)')>> text(1,-0.6,'y=sen(3x)')>> text(1.5,1,'y=sen(x)')
![Page 122: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/122.jpg)
3.2. Gráficas en 3D
El módulo básico de MatLab posee excelentes cualidades para la representación gráfica en tres dimensiones (3D) de curvas y superficies. Se podía hacer un estudio detallado análogo a 2D pero es mucho más extenso y se sale del objetivo de este curso. (Ver bibliografía especializada)
![Page 123: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/123.jpg)
3.2. Gráficas en 3D3.2.1. Dibujo de líneas: función plot3
plot3(X,Y,Z)
Dibuja el conjunto de puntos (X,Y,Z), dondeX,Y,Z son vectores filas. Pueden ser coordenadasparamétricas o matrices de la misma dimensión, en cuyo caso se hace una gráfica por cada tripletade filas y sobre los mismos ejes. Para valorescomplejos se ignoran las partes imaginarias
plot3(X,Y,Z, S)
Dibuja el conjunto de puntos (X,Y,Z) con lasopciones definidas en S. Usualmente S se compone de dos dígitos entre comillas, el primerolos cuales fija el col,or de la línea del gráfico y el segundo el carácter a usar.
plot3(Xi,Yi,Zi, Si,….)
Combina sobre los mismos ejes, las gráficas definidas para las tripletas (Xi,Yi,Zi, Si). Se trata de representar varias funciones al mismo tiempo.
![Page 124: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/124.jpg)
3.2. Gráficas en 3D3.2.1. Dibujo de líneas: función plot3
![Page 125: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/125.jpg)
3.2. Gráficas en 3D3.2.1. Dibujo de líneas: función plot3
>> X=[0 1 2 3 4 5 6 7 8 9 ];>> Y=[11 12 13 14 15 16 17 18 19 20];>> Z=[21 22 23 24 25 26 27 28 29 30];>> plot3(X,Y,Z)
![Page 126: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/126.jpg)
3.2. Gráficas en 3D3.2.1. Dibujo de líneas: función plot3
>> t=0:pi/75:10*pi;>> plot3(sin(t),cos(t),t,'.r')
![Page 127: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/127.jpg)
3.2. Gráficas en 3D3.2.2. Formas geométricas 3D especiales
Matlab dispone de comandos para representar formas geométricas especiales en tres dimensiones:•Cilindros•Esferas•Gráficos de barras•Secciones•Tallos•Cascada• Etc.,
![Page 128: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/128.jpg)
3.2. Gráficas en 3D3.2.2. Formas 3D especiales: Barras Tridimensionales
![Page 129: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/129.jpg)
3.2. Gráficas en 3D3.2.2. Formas 3D especiales: Gráfico de Tallos
![Page 130: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/130.jpg)
3.2. Gráficas en 3D3.2.2. Formas 3D especiales: Esfera Unidad
![Page 131: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/131.jpg)
3.2. Gráficas en 3D3.2.3. Mallados
[X,Y]=meshgrid(x,y)
Transforma el campo de definición de lasvariables ‘x’ e ’y’ de la función a representar‘z=f(x,y)’ en argumentos matricialesutilizables por los comandos surf y mesh paraobtener gráficos de superficie y mallas, respectivamente.
surf(X,Y,Z,C)
Representa la superficie explícita ‘z=f(x,y)’ o la paramétrica realizando el dibujo conn loscolores especificados en C. (El argumento C se puede ignorar)
surfc(X,Y,Z,C)Representa la superficie explícita ‘z=f(x,y)’
junto con el gráfico de contornocorrespondiente (curvas de nivel sobre el plano OXY)
![Page 132: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/132.jpg)
3.2. Gráficas en 3D3.2.3. Mallados
mesh(X,Y,Z,C)
Representa la superficie explícita ‘z=f(x,y)’ o la paramétrica realizando dibujando laslíneas de la rejilla que componen la malla con los colores especificados en C
meshz(X,Y,Z,C) Representa la superficie explícita ‘z=f(x,y)’ o la paramétrica con una especie de cortina de cortina o telón en la parte inferior
meshc(X,Y,Z,C)Representa la superficie explícita ‘z=f(x,y)’
junto con el gráfico de contornocorrespondiente (curvas de nivel sobre el plano OXY)
![Page 133: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/133.jpg)
3.2.3. Ejemplo de función mesh
3.2. Gráficas en 3D
>> [X,Y]=meshgrid(-3:0.125:3);>> Z=peaks(X,Y);>> mesh(X,Y,Z);>> axis([-3 3 -3 3 -10 5]);
![Page 134: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/134.jpg)
3.2.3. Función mesh
3.2. Gráficas en 3D
NOTA: La coloración del gráfico generado por la función mesh es tomado por defecto como función de los valores de z.
Los valores del color pueden ser asignados por el usuarios también a través de un vector de colores.
![Page 135: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/135.jpg)
3.2.3. Ejemplo de función surf
3.2. Gráficas en 3D
>>[X,Y]=meshgrid(-3:0.125:3);>> Z=peaks(X,Y);>> surf(X,Y,Z);
![Page 136: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/136.jpg)
contour(Z)Dibuja la gráfica de contorno (curvas de nivel) para la matriz Z. El número de líneas de contornose elige arbitrariamente
contour(Z,n)
Dibuja la gráfica de contorno (curvas de nivel) para la matriz Z usando en los eles OX y OY el escalado definido mpor los vectores ‘x’ e ‘y’ (‘n’líneas de contorno).
contour(x,y,Z,n) Representa la superficie explícita ‘z=f(x,y)’ juntocon el gráfico de contorno correspondiente(curvas de nivel sobre el plano OXY)
contour3(Z), contour3(Z,n), contour3(x,y,Z,n)contourf(…..)
Representa las gráficas en tres diemensiones
Dibuja una gráfica de contorno y rellena las áreas entre las isolíneas
3.2. Gráficas en 3D3.2.3. Líneas de contorno
![Page 137: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/137.jpg)
3.2.3. Ejemplo de función contour
3.2. Gráficas en 3D
>>[X,Y]=meshgrid(-7.5:.5:7.5);>>Z=(X.^3+Y.^2+2*Y+9)./(X.^2+Y.^2+1);>> contour(Z)
![Page 138: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/138.jpg)
3.2.3. Ejemplo de función contour
3.2. Gráficas en 3D
>> [X,Y]=meshgrid(-6:.134:6);>> Z=peaks(X,Y);>> axis([-5 5 -5 5 -12 6]);>> contour(Z,39);
![Page 139: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/139.jpg)
3.2.3. Ejemplo de función contour3
3.2. Gráficas en 3D
>> [X,Y]=meshgrid(-10:.13:10);>> Z=peaks(X,Y);>> axis([-10 10 -10 10 -20 5]);>> contour3(Z,45);
![Page 140: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/140.jpg)
3.2.3. Ejemplo de función contourf
3.2. Gráficas en 3D
>> [X,Y]=meshgrid(-10:.13:10);>> Z=peaks(X,Y);>> axis([-10 10 -10 10 -20 5]);>> contourf(Z,45);
![Page 141: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/141.jpg)
Bibliografía
1. Aprenda Matlab 7.0 como si estuviera en primero
2. La ayuda de Matlab 7.0
3. Ver en la sección “demos” de la ayuda de Matlab:
• “Graphics” (XY plots in MatLab y XYZ plots in MatLab)
• “New Features in Version 7”(Quinto video)
![Page 142: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/142.jpg)
Tema IV
Programar con Matlab
Profs. Dres. Sixto RomeroFrancisco J. Moreno
Master en Ingeniería de Control, Sistemas Electrónicos e Informática Industrial2007-2008
![Page 143: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/143.jpg)
Sumario
4.1. Estructuras condicionales y bucles4.1.1. Comando if4.1.2. Comando switch4.1.3. Bucle for4.1.4. Bucle while4.1.5. Comando break4.1.6. Comando continue
![Page 144: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/144.jpg)
Sumario
4.2. Entrada/salida interactiva de variables4.2.1. función input4.2.2. función disp
4.3. Programar en Matlab4.3.1. Editor de texto4.3.2. Los Scripts4.3.3. El fichero *.m
4.4. Declaración de funciones: function, feval, breakspoints
![Page 145: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/145.jpg)
4.1. Estructuras condicionales y bucles
MatLab puede utilizarse como un lenguaje de alto nivel que incluye estructuras de:
* Datos
* Funciones
* Instrucciones de control de flujo
* Manejo de E/S
* Otras.
![Page 146: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/146.jpg)
4.1. Estructuras condicionales y bucles
MatLab puede utilizarse como un lenguaje de programación propio que dispone de sentencias para realizar bifurcaciones y bucles.
a) Las bifurcaciones permiten realizar una u otra operación según se cumpla o no una determinada condición.
b) Los bucles permiten repetir las mismas o análogas
operaciones sobre datos distintos.
![Page 147: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/147.jpg)
4.1. Estructuras condicionales
En MatLab existen dos estructuras condicionales fundamentales: una de ellas se conforma a partir del comando ify la otra a partir del comando switch.
![Page 148: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/148.jpg)
4.1.1. Comandos if
if <condición><comandos>
end
Estructura condicional conformada a partir del comando if en su forma simple:
¡Se ejecutan los comandos si la condición es cierta!
![Page 149: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/149.jpg)
4.1.1. Comandos if
if <condición ><comandos1>
else<comandos2>
end
Estructura condicional conformada a partir del comando if en su forma general:
¡Se ejecutan los comandos 1 si la condición es cierta y los comandos 2
si la condición es falsa!
![Page 150: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/150.jpg)
4.1.1.Comandos if
if <condición 1><comandos1>
elseif <condición 2><comandos2>
else<comandos>
end
Los comandos if pueden ser anidados como el comando forque veremos más adelante. Cuandose anidan comandos if se
utiliza la sentencia elseif
![Page 151: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/151.jpg)
4.1.1. Comando if
if < condición 1><comandos1>
elseif < condición 2>
<comandos2else
if <condición 3><comandos3>else….
endend
end
La sintaxis anidada anterior es equivalente, pero más rápida de ejecución, a la sintaxis sin anidar siguiente:
![Page 152: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/152.jpg)
4.1.1. Ejemplo de Comando if (Simple)
![Page 153: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/153.jpg)
4.1.1. Ejemplo de Comando if (General)
![Page 154: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/154.jpg)
switch <expresión(escalar o cadena>case <valor1>
<sentencias> %Ejecuta si expresión es valor1case <valor2><sentencias> %Ejecuta si expresión es valor2
…otherwise
<sentencias> %Ejecuta si expresión no cumple ningún casoend
El comando switch ejecuta ciertas sentencias basadas en el valor de una variable.
4.1.2. Comando switch
![Page 155: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/155.jpg)
NOTA
La secuencia de casos se interrumpe tan pronto se verifique el primero de ellos.
La sentencia break es innecesaria en esta estructura.
4.1.2. Comando switch
![Page 156: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/156.jpg)
4.1.2. Comando switch
![Page 157: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/157.jpg)
4.1.3. El bucle for
El uso de funciones recursivas, condicionales y definidas a trozos es muy habitual en Matemáticas. Pare ello es necesario el uso de bucles.
Matlab dispone de su propia versión de la sentencia DO (definida en otros lenguajes) El bucle for repite un conjunto de instrucciones un número predeterminado de veces.
![Page 158: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/158.jpg)
for <var-control>= <var-ini>:<paso>:<var-fin><comandos>
end
for <var-control>= <vector-de-valores><comandos>
end
4.1.3. El bucle for
El bucle empieza con la clausula for y termina con la de end, e incluye en su interior comandos que se separan por comas. Si algún comando define una variable, se finaliza con punto y coma para evitar repeticiones en la salida. Normalmente se utilizan en el uso de la sintaxis de los M-ficheros
![Page 159: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/159.jpg)
4.1.3. El bucle for
![Page 160: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/160.jpg)
4.1.3. El bucle for
![Page 161: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/161.jpg)
También en Matlab se puede realizar anidamiento en un bucle for
Sintaxis:for <var-control1>= <var-ini1>:<paso1>:<var-fin1>
for <var-control2>= <var-ini2>:<paso2>:<var-fin2><comandos>
endend
4.1.3. El bucle for
![Page 162: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/162.jpg)
4.1.3. El bucle for
![Page 163: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/163.jpg)
4.1.3. El bucle for
![Page 164: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/164.jpg)
Matlab dispone de su propia versión del comando de bucle while. Este comando permite ejecutar de forma repetitiva uno o un grupo de comandos un número determinado de eces mientras se cumple una condición lógica
while <condición> % Puede ser vectorial o matricial
<comandos> end
4.1.4. El bucle while
![Page 165: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/165.jpg)
4.1.4. El bucle while
![Page 166: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/166.jpg)
4.1.4. El bucle while
![Page 167: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/167.jpg)
El comando break finaliza la ejecución de un bucle for y/o while en el cual aparece continuando la ejecución en la siguiente instrucción fuera del bucle. más interno de los que comprenden a dicha sentencia.
4.1.5. El Comando break
![Page 168: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/168.jpg)
4.1.5. El Comando break
![Page 169: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/169.jpg)
El comando continue hace que se pase inmediatamente a la siguiente iteración del bucle for o while ignorando las restantes instrucciones en el cuerpo del bucle.
4.1.6. El Comando continue
![Page 170: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/170.jpg)
4.2. Entrada/salida interactiva de variables
En MatLab se introducen algunas funciones sencillas (input, disp) para la entrada y salida interactiva de variables.
input disp
![Page 171: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/171.jpg)
La función input permite imprimir un mensaje en la línea de comandos de MatLab y recuperar como valor de retorno un valor numérico o el resultado de una expresión tecleada por el usuario.
<identificador> = input(‘<Texto deseado>');
4.2.1. La Función input
![Page 172: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/172.jpg)
4.2.1. La Función input
![Page 173: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/173.jpg)
Otra alternativa de la función input esta función es la siguiente (obsérvese el parámetro 's'):En este caso el texto tecleado se lee y se devuelve sin evaluar, con lo que se almacena en una variable como cadena.
<identificador> = input(‘<Texto deseado>’, ‘s’);
NOTA
4.2.1. La Función input
![Page 174: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/174.jpg)
La función input permite imprimir un mensaje en la línea de comandos de Matlab y recuperar como valor de retorno un valor numérico o el resultado de una expresión tecleada por el usuario.
4.2.1. La Función input
![Page 175: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/175.jpg)
Ejemplo:
4.2.1. La Función input
![Page 176: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/176.jpg)
La función disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero sin imprimir su nombre.
Las cadenas de caracteres son un caso particular de vectores.
disp('<Texto deseado>');
4.2.2. La Función disp
![Page 177: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/177.jpg)
4.3. Programar en Matlab
En Matlab suelen escribirse los ficheros denominados M-ficheros. Son códigos Matlab(scripts) que ejecutan una serie de comandos o funciones que aceptan argumentos y producen una salida. Los M-Ficheros se crean utilizando un editor cualquiera pero preferentemente el de Matlab.
![Page 178: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/178.jpg)
Para crear un nuevo M-fichero se utiliza el Editor/Debugger, que se activa haciendo clicken la pestaña de la barra de herramientas de Matlab o en la ventana de comandos New-> File El editor se abre con un fichero en blanco en el cual crearemos el M-fichero, es decir un fichero con código de programación Matlab.
4.3.1 El editor de texto
![Page 179: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/179.jpg)
4.3.1 El editor de texto
![Page 180: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/180.jpg)
4.3.2. Los scripts
Los scripts son el tipo de M-ficheros más sencillo posible. Un script no tiene argumentos de entrada ni de salida. Sencillamente estáformado por instrucciones Matlab que se ejecutan secuencialmente y que podrían submitirse igualmente en serie en la ventana de comandos. Los scripts operan con datos existentes en el espacio de trabajo o con nuevos datos creados por el propio script.
![Page 181: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/181.jpg)
4.3.2. Ejemplo de scripts
![Page 182: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/182.jpg)
Existen dos tipos de ficheros *.m, los ficheros de comandos (scripts) y las funciones.
4.3.2. Los ficheros *.m
![Page 183: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/183.jpg)
4.4. Declaración de funciones
La implementación de funciones amplía grandemente el horizonte de posibilidades de MatLab. Matlab es habitualmente utilizado en modo comando (o interactivo).
Para ejecutar un M-fichero basta con teclear su nombre (sin extensión) en modo interactivo en la ventana de comandos y pulsar ENTER.
Para más información utilizar el comando Help de Matlab
![Page 184: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/184.jpg)
4.4.1. Las funciones
Declaraciónfunction [parám_salida] = nombre_función(<parám_entrada)cuerpo de la función
![Page 185: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/185.jpg)
4.4.1. Las funcionesa) Las funciones definidas en ficheros *.m se caracterizan
porque la primera línea (no comentariada) comienza por la palabra function.
b) Si los parámetros de salida son más de uno, se sitúan entre corchetes y separados por comas, y si los parámetros de entrada son más de uno, se separan por comas.
c) El cuerpo de la función es la sintaxis que la define, y debe incluir comandos que asignen valores a los parámetros de salida
d) Cada comando suele ir en una línea que finaliza con una coma o con un punto y coma en caso de definición de variables
![Page 186: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/186.jpg)
4.4.2. Ejemplo de funciónDefinamos la función fun1(x)=x^4-2*x^3*sen(x^2+1).
PASOS
1. Creamos el correspondiente M- fichero de nombre fun1.m .
2. Introducción de instrucciones con el Editor/Debugger
3. Salvamos seleccionando la opción Save del menú File de la barra superior de menús del Matlab Editor/Debugger
4. Se recomienda guardar las funciones como ficheros de nombre igual al nombre de la función y en el subdirectorio de trabajo por defecto de Matlab C:\MATLAB7\work
5. Una vez definida y guardada la función anterior en un M-fichero, se puede utilizar desde la ventana de comandos.
![Page 187: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/187.jpg)
4.4.2. Ejemplo de función
![Page 188: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/188.jpg)
4.4.2. Otro ejemplo de función
![Page 189: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/189.jpg)
4.4.2. El comando fevalLa evaluación de una función en sus argumentos (o parámetros de entrada) también pude realizarse a través del comando feval cuya sintaxis es:
feval (‘F’, arg1,arg2,….,argn) %Evalúa la función F (M-fichero F.m en los argumentos especificados
![Page 190: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/190.jpg)
4.4.2. Ejemplo del comando feval
![Page 191: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/191.jpg)
4.4.3. Los breakpointsEn cada línea del M-Fichero a la derecha del mismo aparece una barra horizontal. Haciendo click sobre ella fijamos un breakpoint que queda marcado por un punto rojo sobre la barra. Al fijar un breakpoint y ejecutar el programa se ejecutan todas las órdenes anteriores al punto breakpointdeteniéndose la ejecución. Cuando eso ocurre, una flecha verde indica la línea del programa hasta la cual se han ejecutado las órdenes. En este momento, utilizando el workspaceo el commnd windown, podemos ver los valores de cada variable o introducir órdenes en el command windown. Esta aplicación es muy útil para comprobar qué órdenes dentro del código generan resultados deseados.
![Page 192: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/192.jpg)
4.4.3. Los breakpointsUna vez la ejecución se detiene en el breakpoint y aparece la flecha verde al principio de la línea tenemos varias opciones:
• Detenerla ejecución
• Poner de nuevo el programa a ejecutarse desde el breakpoint hasteel final del M-Fichero
• Ir ejecutando orden por orden a partir del breakpoint
![Page 193: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/193.jpg)
4.4.3. Los breakpointsLa figura muestra los botones del M-Fichero que realizan estas acciones. Para borrar un breakpoint podemos hacer click sobre él o presionar uno de los dos botones que aprecenen la botonera del M-fichero, que borra todos los breakpoints que haye en el M-Fichero.
Podemos fijar tantos breakpoints como queramos.
![Page 194: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/194.jpg)
4.4.3. Los breakpoints
![Page 195: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/195.jpg)
4.4.3. Los breakpoints
![Page 196: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/196.jpg)
Tema V
Otros tipos de datos en MatLabProfs. Dres. Sixto Romero
Francisco J. MorenoMaster en Ingeniería de Control, Sistemas Electrónicos e Informática Industrial
2007-2008
![Page 197: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/197.jpg)
Sumario
5.1. Cadenas de caracteres
5.2. Hipermatrices (arreglos de más de 2 dim.)
5.3. Estructuras
5.4. Cell arrays (matrices de celdas)
![Page 198: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/198.jpg)
Cadenas de caracteres
MatLab también opera con cadenas de caracteres, muy similar a como se hace con lenguajes tan conocidos como C++.
Los caracteres de una cadena se almacenan en un vector de manera que existirá un carácter por elemento.
![Page 199: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/199.jpg)
Cadenas de caracteres
Una cadena carácter se representa entre comillas simples (‘cadena’).
Ejemplos:
![Page 200: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/200.jpg)
Cadenas de caracteres
Para representar un carácter en MatLabse emplean 2 bytes o sea 16 bits.
![Page 201: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/201.jpg)
Algunas operaciones con cadenas
![Page 202: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/202.jpg)
Algunas operaciones con cadenas
char(v) Convierte un vector de numeros en una cadena
char(c1,..,cn) Crea una matriz de caracteres (completandocon espacios las cadenas más cortas)
deblank(c) Elimina espacios al final de la cadenaisspace() Detecta si un caracter es un espacio o nodisp(c) Imprime la cadena c
strcomp(c1,c2,n) Compara los n primeros caracteres de lascadenas c1 y c2
strrep(c1,c2,c3) Sustituye c2 por c3 cada vez que aparezca c2 en c1
strcomp(c1,c2) Compara las cadenas c1 y c2
![Page 203: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/203.jpg)
Hipermatrices
MatLab permite trabajar con matrices de más de dos dimensiones es decir hipermatrices.
La aplicación fundamental de este hecho es almacenar bajo un único nombre distintas matrices de un mismo tamaño
![Page 204: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/204.jpg)
Definición de hipermatrices
Una hipermatriz es un arreglo de (mxnxk) elementos.
![Page 205: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/205.jpg)
Definición de hipermatrices
Ejemplo 1:
![Page 206: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/206.jpg)
Definición de hipermatricesEjemplo 2:
![Page 207: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/207.jpg)
Estructuras
Una estructura (struct) no es más que una agrupación de datos de tipos diferentes bajo un mismo nombre que conforman en sí un nuevo tipo de dato.
Los datos de una estructura se denominan campos o miembros.
![Page 208: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/208.jpg)
Creación de estructuras
Aunque una estructura puede crearse elemento a elemento existe una forma mucho más eficiente y sencilla de trabajar:
Sintaxis<identif> = struct (‘field1’, value, ... , ‘fieldn’, value);
![Page 209: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/209.jpg)
Creación de estructuras
Ejemplo:
![Page 210: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/210.jpg)
Funciones que operan sobre estructuras
fieldnames() Convierte un vector de numeros en una cadena
isfield(ST,s) Crea una matriz de caracteres (completandocon espacios las cadenas más cortas)
isstruct(ST) Elimina espacios al final de la cadenarmfield(ST,s) Detecta si un caracter es un espacio o nogetfiel(ST,s) Imprime la cadena csetfield(ST,s) Compara las cadenas c1 y c2
![Page 211: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/211.jpg)
Cell arrays (matrices de celdas)
Un vector (matriz) de celdas es un vector cuyos elementos son cada uno de ellos una variable de tipo cualquiera.
En un Cell array, el primer elemento puede ser un número, el segundo una matriz, el tercero una cadena de caracteres, el cuarto una estructura, etc.
Su homólogo en otros lenguajes es la lista
![Page 212: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/212.jpg)
Creación de los Cell arrays
Un vector (matriz) de celdas se crea empleando llaves para la introducción de los elementos.
Sintaxis: vector(i) = {elemento}matriz(i,j) = {elemento}
![Page 213: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/213.jpg)
Creación de los Cell arrays
Ejemplo:
![Page 214: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/214.jpg)
Creación de los Cell arrays
ObservaciónExiste una sintaxis alternativa para la definición de cell array, que por comodidad es la más empleada.
Sintaxis: vector{i} = elementomatriz{i,j} = elemento
![Page 215: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/215.jpg)
Creación de los Cell arrays
Ejemplo:
![Page 216: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/216.jpg)
Funciones que operan sobre cell array
cell(m,n) Crea un cell array vacio de m x ncelldisp(cell ar) Muestra el contenido de tadas las celdeas del cacellplot(cell ar) Representa graficamente las celdas de caiscell(cell ar) Indica si (cell ar) es un vector de celdasnum2cell() Convierte un array numérico en cell array
cell2struct() Convierte un cell array en una estructurastruct2cell() Convierte una estructura en un cell array
![Page 217: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/217.jpg)
Conversión entre struct y cellarray
Ejemplo:
![Page 218: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/218.jpg)
Uso práctico de un cell array
En este ejemplo se pretende resolver un sistema de ecuaciones lineales que ha sido previamente almacenado en un cell array.
![Page 219: Tema I Introducción al MatLab](https://reader036.vdocuments.co/reader036/viewer/2022062907/62b9e896f5efbe57a37d451b/html5/thumbnails/219.jpg)
Bibliografía
1. Aprenda Matlab 7.0 como si estuviera en primero
2. La ayuda de Matlab 7.0
3. Ver en la sección “demos” de la ayuda de Matlab:
• “Programming” (Manipulating Multidimensional
Arrays) y (Structures)