|
1
|
- Presentación
- Requerimientos
- Metodología
- Indicaciones
- Contenido
- Fuentes de consulta
|
|
2
|
- Este curso está orientado a quienes han tenido un contacto muy reducido
o nulo con MATLAB.
- Tiene como propósito proporcionar los conocimientos básicos sobre
MATLAB, permitiéndole al estudiante su posterior ampliación.
- En general, los conceptos abordados en el curso son aplicables MATLAB
5.3 o superior.
- En su mayoría, el material de este curso ha sido adaptado de la
documentación oficial del producto que se menciona en la sección Fuentes
de Consulta.
|
|
3
|
- Para estudiar este curso satisfactoriamente, se necesita lo siguiente:
- Una computadora personal de prestaciones competentes, con sistema
operativo Microsoft Windows 98 o superior, y MATLAB 5.3 o superior.
- Internet Explorer 5 o superior, para visualizar las dispositivas que
conforman el curso.
- No se requiere de ningún toolbox u otro componente adicional de MATLAB.
|
|
4
|
- El curso se divide en 13 lecciones, de duración variable, no mayor a 2
horas aproximadamente.
- Cada lección aborda un tópico completo de MATLAB, y puede dividirse en
las siguientes partes:
- Exposición
- Demostración
- Práctica
|
|
5
|
- La exposición tiene como propósito introducir conceptos y
características de MATLAB.
- La demostración contiene ejemplos de aplicación de los conceptos
vertidos en la exposición de la lección.
- La práctica es un conjunto de ejercicios de aplicación que deben
realizarse en MATLAB, para constatar que los conceptos han sido
asimilados.
|
|
6
|
- Estudie las lecciones del curso en el orden en el que han sido
presentadas, según su número correlativo (lección 1, lección 2, etc.).
- Recorra en orden las dispositivas de cada lección, comenzando siempre
con la parte de exposición, continuando con la de demostración y
finalizando con la de práctica (de estar presentes).
|
|
7
|
- En las secciones de exposición y demostración, cuando aparece el logo de
MATLAB en el margen izquierdo de la diapositiva (como el que se muestra
aquí), se indica que se debe utilizar MATLAB en ese momento para
comprobar u observar lo que se menciona en ese párrafo.
- Los ejercicios contenidos en la sección práctica de las lecciones deben
ser implementados en MATLAB antes de avanzar a la lección siguiente.
|
|
8
|
- Lección 1: ¿Qué es MATLAB?
- Lección 2: Matrices
- Lección 3: Expresiones
- Lección 4: Trabajando con matrices
- Lección 5: La ventana de comandos
- Lección 6: Gráficos
- Lección 7: Ayuda y documentación en línea
- Lección 8: El entorno de MATLAB
- Lección 9: Operaciones con matrices y arreglos
- Lección 10: Control de flujo
- Lección 11: Otras estructuras de datos
- Lección 12: Guiones y funciones
- Lección 13: Manejador de gráficos
|
|
9
|
- Documentación oficial en línea de los productos de MathWorks:
- http://www.mathworks.com/access/helpdesk/help/techdoc/matlab.html
|
|
10
|
- Lección 1
- ¿Qué es MATLAB?
|
|
11
|
|
|
12
|
- Generalidades
- Historia de MATLAB
- El Sistema MATLAB
- Documentación de MATLAB
- La familia de productos de MATLAB
- Campos de aplicación de MATLAB
|
|
13
|
- MATLAB = MATrix LABoratory (laboratorio matricial)
- Lenguaje de altas prestaciones para el cálculo técnico
- Incluye cálculo, visualización y programación
- Entorno de fácil uso
- Notación matemática familiar
|
|
14
|
- Usos típicos incluyen:
- Matemáticas y cómputo
- Desarrollo de algoritmos
- Modelado, simulación y desarrollo de prototipos
- Análisis, exploración y visualización de datos
- Gráficos científicos y de ingeniería
- Desarrollo de aplicaciones, incluyendo GUI’s
|
|
15
|
- Su elemento básico de datos es el arreglo
- Los arreglos no requieren dimensionamiento
- La vectorización implica velocidad de cálculo
|
|
16
|
- Cleve Moler escribió el MATLAB original en FORTRAN
- Los algoritmos matriciales fueron tomados de los proyectos LINPACK y
EISPACK
- El MATLAB actual fue escrito en C por The MathWorks Inc.
|
|
17
|
- Lenguaje de Programación
- Entorno de Desarrollo
- Manejador de Gráficos
- Biblioteca de Funciones Matemáticas
- Interfaz del Programa de Aplicación (API)
|
|
18
|
- Lenguaje de alto nivel
- Basado en matrices y arreglos
- Incluye:
- Control de flujo
- Funciones
- Estructuras de datos
- Elementos de entrada/salida
- Programación orientada a objetos
- Permite programación a pequeña y gran escala
|
|
19
|
- Conjunto de herramientas que facilitan al usuario y al programador el
manejo de MATLAB
- Permite:
- Manejo de variables
- Importación y exportación de datos
- Desarrollo, manejo, depuración y optimización de archivos M
|
|
20
|
- Conocido como MATLAB Handle Graphics®
- Incluye comandos de alto nivel para:
- Visualización de datos en dos y tres dimensiones
- Procesamiento de imágenes
- Animaciones
- Gráficos para presentaciones
- Incluye comandos de bajo nivel para:
- Personalización de la apariencia de los gráficos
- Creación de GUI’s
|
|
21
|
- Vasta colección de algoritmos computacionales que incluyen:
- Desde funciones elementales, como suma, seno, coseno, y aritmética
compleja,
- Hasta funciones más sofisticadas, como inversa de una matriz, funciones
de Bessel, y transformadas rápidas de Fourier.
|
|
22
|
- Conocida como MATLAB Application Program Interface (API)
- Permite:
- Interactuar con programas escritos en C y FORTRAN
- Invocar rutinas desde MATLAB
- Invocar MATLAB como un motor de cómputo
- Lectura y escritura de archivos MAT
|
|
23
|
- Disponible en línea y en formato para impresión
- Se compone de los siguientes títulos:
- Instalación (MATLAB Installation Guide)
- Guía rápida (Getting Started with MATLAB)
- Manual (Using MATLAB)
- Manual de Gráficos (Using MATLAB Graphics)
- API de MATLAB (MATLAB Application Program Interface Guide)
- Nuevas características (MATLAB New Features)
|
|
24
|
|
|
25
|
|
|
26
|
- MATLAB System
- MATLAB Extensions
- Toolboxes
|
|
27
|
- Es el fundamento para todos los productos de MATLAB. Combina capacidades
numéricas de cómputo, gráficos en 2 y 3 dimensiones, y su lenguaje de
programación propio, todo en un ambiente integrado de fácil uso.
|
|
28
|
- Son herramientas opcionales que soportan la implementación de sistemas
desarrollados en MATLAB.
|
|
29
|
- Toolbox = Cajas de Herramientas
- Soluciones para aplicaciones específicas
- Permiten aprender y aplicar conocimientos tecnológicos especializados
|
|
30
|
- Constituyen conjuntos de funciones de MATLAB (archivos M)
- Son abiertos y extensibles, o sea, se pueden ver los algoritmos y
agregar los suyos propios.
- Amplían las capacidades de MATLAB para resolver tipos de problemas
particulares.
- Muchos de ellos han sido desarrollados por The MathWorks Inc.
|
|
31
|
- SIMULINK System
- SIMULINK Extensions
- Blocksets
|
|
32
|
- Sistema interactivo para la simulación de sistemas dinámicos no lineales
- Ambiente gráfico
- Basado en diagramas de bloque, señales, entradas y salidas
- Puede trabajar con sistemas lineales, no lineales, de tiempo continuo,
de tiempo discreto, de variables múltiples, y de razones de cambio
múltiples
|
|
33
|
- Son herramientas opcionales que soportan la implementación de sistemas
desarrollados en SIMULINK.
|
|
34
|
- Son colecciones de bloques de SIMULINK diseñados para ser utilizados en
áreas de aplicación específicas.
|
|
35
|
- Computación técnica
- Control Automático
- Procesamiento de Señales y Comunicaciones
- Procesamiento de Imágenes
- Mediciones y pruebas
- Modelado y análisis financiero
|
|
36
|
- Computación matemática, análisis, visualización y desarrollo de
algoritmos.
- Orientado para ingenieros, científicos, matemáticos y educadores.
- Diversos campos de aplicación, desde automovilismo y electrónica hasta
equipo industrial y telecomunicaciones.
|
|
37
|
- Diseño de sistemas de control basado en modelos.
- Incluye simulación, creación rápida de prototipos y generación de código
para sistemas embebidos.
- Utilizado para el diseño y desarrollo de software utilizado en
tecnologías aeroespaciales, de defensa, automovilismo, equipo
industrial, control de procesos, etc.
- Se reducen los costos y tiempo de desarrollo, y se incrementa la
calidad.
|
|
38
|
- Diseño de sistemas de procesamiento de señal y de comunicaciones basado
en modelado.
- Incluye simulación, generación de código, y verificación.
- Aplicable en áreas de electrónica, comunicaciones, tecnologías
aeroespaciales y de defensa, medicina y otras industrias.
- Permite el modelado de algoritmos y modelos, la simulación de sistemas
complejos, la generación de código para tiempo real, y verificar la
implementación de hardware y software.
|
|
39
|
- Adquisición de imágenes, análisis, visualización y desarrollo de
algoritmos.
- Orientado a ingenieros, científicos e investigadores.
- Ambiente intuitivo y flexible para resolver problemas complejos sobre
imágenes.
- Disciplinas de aplicación tales como tecnologías aeroespaciales y de
defensa, remote sensing, biotecnología, imágenes médicas y científicas,
y ciencias de los materiales.
|
|
40
|
- Capacidad de conexión con hardware especializado.
- Análisis de datos para aplicaciones de mediciones y pruebas.
- Utilizado para pruebas, análisis de datos, modelado, reporte de
resultados, todo en un único ambiente.
|
|
41
|
- Modelado, análisis y desarrollo de aplicaciones financieras.
- Permite acceder y manipular fácilmente grandes cantidades de datos,
desarrollar rápidamente nuevos algoritmos financieros, y crear de forma
automática todos los componentes necesarios para integrar nuevos modelos
dentro de un sistema ya existente.
|
|
42
|
|
|
43
|
|
|
44
|
- Definiciones
- Creación de matrices
- Suma, transpuesta y diagonal
- Punteros
- El operador dos puntos
- La función magic
|
|
45
|
- Matriz: Arreglo rectangular de números.
- Ejemplo:
|
|
46
|
- Tamaño de una matriz:
Número de filas X Número de columnas.
- Para el ejemplo anterior, la matriz es de tamaño 3x4.
- Escalar: Matriz de 1x1.
- Vector: Matriz de sólo 1 fila (vector fila), o sólo 1 columna (vector
columna).
|
|
47
|
- Los lenguajes de programación tradicionales realizan operaciones número
por número al trabajar con arreglos.
- Las operaciones de MATLAB trabajan con matrices completas
simultáneamente.
- Un buen ejemplo de matriz es el cuadrado mágico que se encuentra en el
tallado renacentista “Melancolía I” del artista y matemático alemán Albrecht
Dürer.
|
|
48
|
|
|
49
|
- Existen diversas formas de crear matrices:
- Digitar una lista explícita de elementos.
- Cargar las matrices desde un archivo externo.
- Usando las funciones integradas de MATLAB.
- Por medio de funciones creadas por el usuario.
|
|
50
|
- Por medio de una lista explícita de elementos:
- Separar cada elemento por espacios en blanco, o por comas.
- Usar punto y coma para indicar el final de cada fila.
- Encerrar el listado de elementos entre corchetes, [].
|
|
51
|
- Ejemplo, la matriz de Dürer:
- A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
- MATLAB devuelve:
- A =
- 16 3 2 13
- 5 10 11 8
- 9 6 7 12
- 4 15 14 1
|
|
52
|
- Una vez ingresada la matriz, se guarda automáticamente en el espacio de
trabajo de MATLAB (MATLAB Workspace).
|
|
53
|
- La matriz de Dürer es “mágica” porque la suma de 4 de sus elementos en
cualquier dirección siempre produce el mismo número.
- Para sumar las columnas de A:
- MATLAB responde con:
|
|
54
|
- Si no se especifica una variable de salida, MATLAB usa la variable ans (answer,
o respuesta), para almacenar el resultado.
- Las operaciones de MATLAB que trabajan sobre matrices, como sum, para la
suma, realizan la operación sobre cada columna, y devuelven un vector
fila de resultados.
|
|
55
|
- Para sumar los elementos de cada fila, con el comando sum, primero se
debe trasponer la matriz.
- Trasposición: Intercambiar las filas de una matriz por sus columnas.
- Ejemplo:
|
|
56
|
- La transpuesta, en MATLAB, es la comilla simple (‘).
- Por lo tanto:
- Produce:
- ans =
- 16 5 9 4
- 3 10 6 15
- 2 11 7 14
- 13 8 12 1
|
|
57
|
- De forma que:
- Produce:
- Un vector columna con la suma de cada fila.
|
|
58
|
- La diagonal de una matriz está formada por todos los elementos ubicados
en igual posición de fila y de columna.
|
|
59
|
- La diagonal se extrae con el comando diag.
- Produce
|
|
60
|
- Para sumar los elementos de la diagonal:
- Lo que produce:
|
|
61
|
- La otra diagonal (conocida como antidiagonal) no es tan importante
matemáticamente como la diagonal principal.
- Por eso no hay un comando de MATLAB que extraiga la antidiagonal.
- Pero se puede usar la función fliplr para extraer la antidiagonal de una
matriz.
|
|
62
|
- El comando fliplr gira la matriz de derecha a izquierda:
|
|
63
|
- Por lo tanto, para sumar los elementos de la antidiagonal:
- Lo que produce:
|
|
64
|
- Indican la posición de un elemento o conjunto de elementos dentro de una
matriz.
- El menor valor de un puntero es 1.
- El elemento en la fila i y en la columna j se denota por A ( i , j ).
- El origen de las filas y columnas de una matriz está en la esquina
superior izquierda.
|
|
65
|
- Por ejemplo, A(4,2) es el elemento de la matriz A ubicado en la
intersección de la fila 4 con la columna 2.
|
|
66
|
- Por ejemplo, para sumar los elementos de la fila 4:
- A(4,1) + A(4,2) + A(4,3) + A(4,4)
- Lo que produce:
|
|
67
|
- Puede usarse un único puntero para direccionar los elementos de una
matriz, de la forma A(k).
- Esa es la forma usual de referenciar los elementos de los vectores fila
o columna.
- Este direccionamiento también puede aplicarse a matrices, de la
siguiente forma:
|
|
68
|
|
|
69
|
- Por ejemplo, A(8) es lo mismo que A(4,2).
- Si se hace referencia a una posición que no existe en una matriz, ocurre
un error. Por ejemplo,
- Devuelve:
- Index exceeds matrix dimensions.
- (El puntero excede las dimensiones de la matriz. Recuérdese que A se
definió de 4x4).
|
|
70
|
- Pero si se guarda un valor en una posición fuera de la matriz, el tamaño
de ésta se incrementa para alojar al nuevo elemento.
- Por ejemplo,
- X = A;
- X(4,5) = 17
- X =
- 16 3 2 13 0
- 5 10 11 8 0
- 9 6 7 12 0
- 4 15 14 1 17
|
|
71
|
- Es uno de los operadores más importantes de MATLAB.
- Puede usarse de diversas maneras.
- En general, sirve para crear vectores.
- Su sintaxis es:
- variable = inicio:incremento:final
|
|
72
|
- Por ejemplo:
- Devuelve:
- También: 4:2:10 à 4 6
8 10
- Si no se especifica el incremento, se asume la unidad.
- Por ejemplo: 1:5 devuelve 1
2 3 4
5.
|
|
73
|
- Los punteros que involucran al operador dos puntos se refieren a una
porción de la matriz.
- Por ejemplo A(1:3,2) se refiere a todos los elementos de A que están en
las filas de la 1 a la 3, y además en la columna 2.
|
|
74
|
- Por lo tanto, para sumar los elementos de la fila 4, de una forma más
eficiente:
- Lo que devuelve:
- Si el operador dos puntos aparece él sólo como puntero, se refiere a todos
los elementos de una fila o una columna.
|
|
75
|
- Por ejemplo, A(:,4) se refiere a los elementos de A que están en todas
las filas, y en la columna 4, es decir, que se refiere a toda la columna
4.
|
|
76
|
- La palabra clave end, cuando aparece como puntero, se refiere al último
elemento, ya sea de una fila o de una columna.
- Por ejemplo, A(1,end) se refiere al elemento de A que está en la fila 1,
y en la última columna, o sea, al último elemento de la fila 1.
|
|
77
|
- Por lo tanto, para sumar todos los elementos de la última columna de A,
- Lo que devuelve, lógicamente,
|
|
78
|
- Sirve para crear cuadrados mágicos, de casi cualquier tamaño.
- Ejemplo:
- B = magic(4)
- B =
- 16 2 3
13
- 5 11
10 8
- 9 7 6
12
- 4 14
15 1
|
|
79
|
- Esta matriz es casi idéntica a la Dürer, excepto porque tiene las dos
columnas del centro intercambiadas.
- Para intercambiar las dos columnas del centro:
- Eso significa que la matriz A estará formada por los elementos de la
matriz B, tales que se encuentren ubicados en todas las filas, pero en
las columnas 1, 2, 3 y 4, respectivamente.
|
|
80
|
- Ello devuelve:
- A =
- 16 3 2 13
- 5 10 11 8
- 9 6 7 12
- 4 15 14 1
- ¿Por qué Dürer no empleó el orden que MATLAB ocupa en el algoritmo de la
función magic?
- Tal vez porque quería registrar en la matriz el año en el que hizo el
tallado: en 1514. Véase los elementos A(end,2:3).
|
|
81
|
- ¿Cuánto es la suma “mágica” de las diagonales de un cuadrado mágico de
6x6?
- sum(diag(magic(6)))
- ans =
- Dada A = magic(10), genere la matriz B, que contenga los elementos de A
ubicados en las posiciones pares de fila y de columna.
|
|
82
|
- Dada la matriz A=[10,0;2,7;9,15], sustituya el número 0 por 1.
- Calcule la suma de la diagonal de A=magic(4), sin utilizar el comando diag.
Sugerencia: Use punteros.
- A(1,1)+A(2,2)+A(3,3)+A(4,4)
|
|
83
|
- La transpuesta de una matriz “gira” al arreglo alrededor de la diagonal.
Escriba una secuencia de comandos para girar la matriz A al rededor de
la antidiagonal.
- Escriba una secuencia de comandos para asignar a la matriz B los
elementos que se encuentran en las primeras 2 columnas de A. Utilice
punteros de fila y de columna.
|
|
84
|
- Repita el ejercicio anterior, pero utilizando un único puntero, y
considerando que A es de 4x4.
- Dado A=[3,4,5;2,1,6;-1,7,9;0,-2,-3], cree una matriz B, con los
elementos de A ubicados dentro del rectángulo formado por las posiciones
(1,2) y (4,3).
|
|
85
|
- Repita el ejericcio anterior, pero asignando solamente las esquinas del
rectángulo.
- Dada una matriz A de 4x4, escriba una secuencia de comandos para “girar”
la matriz sobre un eje horizontal.
|
|
86
|
- Genere un vector columna con los primeros 10 números impares, en orden
descendente, utilizando el operador dos puntos.
|
|
87
|
|
|
88
|
|
|
89
|
- Variables
- Números
- Operadores
- Funciones matemáticas
- Ejemplos de expresiones
|
|
90
|
- MATLAB no requiere ningún tipo de declaración de nombres de variables,
ni de sus dimensiones.
- Cuando MATLAB encuentra un nuevo nombre de variable, automáticamente
crea esa variable y aloja la información con la cantidad apropiada de
memoria.
- Si la variable ya existe, MATLAB reemplaza su contenido, y, si es
necesario, cambia las dimensiones de la variable para que sea capaz de
alojar la información.
|
|
91
|
- Las variables pueden estar formadas por cualquier cantidad de letras,
números y caracteres de subrayado.
- MATLAB ocupa sólo los primeros 31 caracteres de un nombre de variable.
- MATLAB distingue mayúsculas de minúsculas.
- Para ver la matriz asignada a una variable, simplemente tecléese el
nombre de dicha variable.
|
|
92
|
- MATLAB utiliza la notación decimal convencional para los números, con
punto decimal opcional, y con signo más o menos.
- La notación científica utiliza la letra e para especificar un factor de
escala en una potencia de 10.
- Los números imaginarios utilizan ya sea el sufijo i o j.
|
|
93
|
- Ejemplos de números en MATLAB:
- 3, –99 0.0001, 9.6397238,
- 1.60210e–20, 6.02252e23, 1i, –3.14159j, 3e5i.
- Todos los números se almacenan internamente utilizando el formato long,
definido por el estándar de punto flotante de IEEE.
|
|
94
|
- Los números de punto flotante tienen una precisión finita de alrededor
de 16 cifras significativas decimales, y un rango finito que abarca
aproximadamente desde 10-308 a 10+308.
|
|
95
|
- Las expresiones utilizan los operadores aritméticos y reglas de
precedencia comunes.
|
|
96
|
- MATLAB cuenta con un gran número de funciones matemáticas elementales,
tales como abs, sqrt, exp y sin.
- Las funciones devuelven un tipo de número adecuado como resultado,
dependiendo del argumento con el que se evalúe. Por ejemplo, la raíz
cuadrada o el logaritmo de un número negativo no devuelve un error, sino
un resultado complejo.
|
|
97
|
- También cuenta con funciones matemáticas más avanzadas, como las
funciones Bessel y gamma. La mayoría de dichas funciones acepta
argumentos complejos.
- Algunas de las funciones, tales como sin y sqrt, son built-in, o sea,
funciones que son parte del núcleo de MATLAB, y que son muy eficientes,
pero cuyos algoritmos no pueden ser inspeccionados por el usuario.
|
|
98
|
- Otras funciones, tales como gamma, y sinh, están implementadas a través
de archivos M. El usuario puede ver el código, e incluso modificarlas.
|
|
99
|
- Algunas funciones proporcionan valores de constantes útiles, tales como:
|
|
100
|
- Inf se genera al dividir un valor diferente de cero entre cero, o al
evaluar una función matemática que sobrepasa realmax.
- NaN se genera al tratar de evaluar una expresión como 0/0, o Inf-Inf,
que no tienen valores matemáticos definidos.
|
|
101
|
- Los nombres de las funciones no están reservados.
- Se pueden reescribir para almacenar cualquier valor, por ejemplo, eps =
1.
- Para restaurar la función original, basta con borrar la variable; por
ejemplo:
|
|
102
|
- rho = (1+sqrt(5))/2
- a = abs(3+4i)
|
|
103
|
- Lección 4
- Trabajando con matrices
|
|
104
|
|
|
105
|
- Funciones que generan matrices.
- Comando load.
- Generación de matrices con archivos M.
- Concatenación de matrices.
- Borrado de filas y columnas.
|
|
106
|
- zeros: Matriz de ceros.
- ones: Matriz de unos.
- rand: Matriz de números aleatorios de distribución uniforme.
- randn: Matriz de números aleatorios de distribución normal.
|
|
107
|
- Ejemplos:
- Z = zeros(2,4)
- F = 5*ones(3,3)
|
|
108
|
- El comando fix devuelve la parte entera de un número fraccionario.
|
|
109
|
- R = randn(4,4)
- R =
- 1.0668 0.2944 –0.6918 –1.4410
- 0.0593 –1.3362 0.8580 0.5711
- –0.0956 0.7143 1.2540 –0.3999
- –0.8323 1.6236 –1.5937 0.6900
|
|
110
|
- Lee archivos binarios que contienen matrices generadas por MATLAB, o
archivos de texto que contienen datos numéricos.
- Los archivos de texto deben organizarse como una tabla rectangular de
números, separados por espacios (o por tabulaciones), con una fila por
línea, e igual número de elementos en cada fila.
|
|
111
|
- Los archivos M son archivos de texto que contienen código de
programación en el lenguaje de MATLAB.
- Para generar matrices con archivos M, basta con escribir en dicho
archivo todas las sentencias de código que se escribirían en la línea de
comandos de MATLAB.
- Luego se ejecutan los archivos M como cualquier otro comando de MATLAB.
- Los archivos M deben tener extensión .m.
|
|
112
|
- Es el proceso de juntar matrices pequeñas para generar matrices mayores.
- El operador de concatenación es el par de corchetes, [ ].
- Para concatenar, las dimensiones de las matrices componentes deben ser
coherentes.
|
|
113
|
- Por ejemplo, dada A=[1,2;3,4], la sentencia:
- Genera:
- B =
- 1 2 2
4
- 3 4 6
8
- 2 3 1
3
- 4 5 2
4
|
|
114
|
- Si las dimensiones de las submatrices no son coherentes, ocurre un
error. Por ejemplo, si A=[1,2,3] y B=[4;5;6], la sentencia [A,B] produce
un error, porque:
|
|
115
|
- La operación de concatenación puede realizase tantas veces como se
desee, de forma simultánea, dentro de la misma matriz.
- Por ejemplo, dada la matriz A=[1,2] y B=[3,4,5;6,7,8], el resultado de C=[[A;A],B]
es:
|
|
116
|
- Se realiza asignando una matriz vacía.
- Por ejemplo, sea A=magic(4).
- Para borrar la segunda columna de A:
- Lo cual genera:
- X =
- 16 3 13
- 5 10 8
- 9 6 12
- 4 15 1
|
|
117
|
- Si se borra un único elemento de una matriz, el resultado dejaría de ser
matriz; por lo tanto, operaciones tales como A(1,2)=[ ], resultan en
error.
- Sin embargo, si se utiliza un único puntero, se puede borrar un sólo
elemento, o una secuencia de elementos, pero antes la matriz se
transforma en un vector fila.
|
|
118
|
- Por ejemplo, si:
- La sentencia A(2:2:8)=[ ] resulta en:
|
|
119
|
- Genere una matriz A de 8x8 tal que su parte superior esté conformada por
ceros, y su parte inferior esté conformada por unos.
- Utilizando concatenación:
- Utilizando punteros:
|
|
120
|
- Escriba una matriz en un archivo de texto, y cárguela en MATLAB con el
comando load.
- Escriba una matriz en un archivo de texto en NOTEPAD, por ejemplo:
- 16.0 3.0 2.0 13.0
- 5.0 10.0 11.0 8.0
- 9.0 6.0 7.0 12.0
- 4.0 15.0 14.0 1.0
- Separe los números con espacios o tabulaciones, y escriba cada fila en
una nueva línea.
- Guarde el archivo con el nombre datos.txt, en la carpeta indicada por
su instructor.
- Lea el archivo con el comando load datos.txt.
- Se creará la variable datos, conteniendo la matriz en cuestión.
|
|
121
|
- Escriba un archivo M que genere una caja mágica de 16x16, pero
transpuesta.
- Escriba en NOTEPAD lo siguiente:
- Guarde el archivo con el nombre magica_16.m, en la carpeta indicada por
su instructor.
- Ejecute el archivo M con la sentencia magica_16.
|
|
122
|
- Dadas las matrices a=ones(3,1), b=[2,1,5], y c=[3,16,–2;5,27,0], intuya
el resultado de la ejecución de las siguientes sentencias. Luego
compruebe su respuesta en MATLAB.
- [ a ; b' ]
- d = c ( : , [ 1 , 3 ] )
- e = c ( 1 : 2 : 6 )
- [ a’ ; [ c ( 2 , : ) ; b ] ; zeros ( 1 , 3 ) ]
|
|
123
|
- Lección 5
- La ventana de comandos
|
|
124
|
|
|
125
|
- Definición
- El comando format
- Supresión de salida en pantalla
- Líneas de comando largas
- Línea de edición de comandos
|
|
126
|
- La ventana de comandos (command window) es la interfaz gráfica que
aparece al iniciar MATLAB, y donde se teclean todos los comandos y se
despliegan los resultados.
- Se compone de la línea de edición de comandos, y del historial de
comandos.
- La línea de edición de comandos es la región de la ventana que contiene
al indicador del sistema (el símbolo >>, o EDU>>, para la
versión de estudiante de MATLAB), y es a donde se digitan las sentencias
de código que se desean ejecutar.
|
|
127
|
- El historial de comandos está dado por el resto del espacio de la
ventana de comandos, y es la región en la que quedan registrados los
resultados de las sentencias, y donde se puede ver el listado de
secuencias de comandos que se han ejecutado.
|
|
128
|
- Controla el formato numérico de los valores que se despliegan en
pantalla.
- Afecta sólo la visualización de los números, pero no la forma en la que
MATLAB los representa internamente para almacenamiento y procesamiento.
|
|
129
|
- Ejemplos de formatos:
Dado el vector x=[4/3,1.2345e–6], se muestran a continuación
algunos de los formatos disponibles con este comando.
- format short
- 1.3333 0.0000
- format short e
- 1.3333e+000 1.2345e–006
- format short g
- 1.3333 1.2345e–006
|
|
130
|
- format long
- 1.33333333333333 0.00000123450000
- format long e
- 1.333333333333333e+00 1.234500000000000e–006
- format long g
- 1.33333333333333 1.2345e–006
- format bank
- 1.33 0.00
- format rat
- 4/3 1/810045
- format hex
- 3ff5555555555555 3eb4b6231abfd271
|
|
131
|
- Si el elemento más grande de una matriz es mayor que 103, o
menor que 10-3, MATLAB aplica un factor de escala común, si
se utiliza las opciones short o long.
- El comando format compact elimina muchas de las líneas en blanco que
aparecen cuando MATLAB despliega los resultados.
|
|
132
|
- Si al final de una sentencia se presiona ENTER, MATLAB despliega el
resultado en pantalla.
- Pero si la sentencia se finaliza con un signo de punto y coma, MATLAB
ejecuta la sentencia, pero no muestra los resultados en pantalla.
- Esto es particularmente útil cuando se generan matrices muy grandes.
|
|
133
|
- Si la sentencia no cabe en una sóla línea, o si es demasiado larga, se
colocan tres puntos (…) seguidos de un ENTER, para indicar que la
sentencia continúa en la siguiente línea.
- Por ejemplo:
- s = 1 –1/2 + 1/3 –1/4 + 1/5 – 1/6 + 1/7 ...
- – 1/8 + 1/9 – 1/10 + 1/11 – 1/12;
- Los espacios en blanco alrededor de los símbolos =, + y – son
opcionales, pero ayudan a mejorar la legibilidad de las expresiones.
|
|
134
|
- Se cuenta con varias combinaciones de teclas que permiten reescribir,
editar, y reutilizar las sentencias que han sido digitadas
recientemente.
- A continuación se muestra un listado de las combinaciones de teclas para
la línea de comandos, y su función.
|
|
135
|
|
|
136
|
|
|
137
|
- Exposición
- Demostración
- Práctica
|
|
138
|
- Creación de una gráfica
- Ventanas de figuras
- Añadiendo gráficas a un gráfico existente
- Sub-regiones de graficación
- Datos imaginarios y complejos
- Control de ejes
- Etiquetas de ejes y títulos
- Gráficos de malla y de superficie
- Visualización de funciones de dos variables
|
|
139
|
- El comando más común para graficar es plot.
- Si el argumento es un vector, produce una gráfica en dos dimensiones.
- En el eje vertical se coloca el valor de cada elemento del vector de
entrada.
- En el eje horizontal se coloca la posición de cada elemento del vector
de entrada.
- MATLAB genera automáticamente líneas entre los pares ordenados
graficados.
|
|
140
|
- Ejemplo:
- y=[5,-1,10,4,7,0];
- plot(y)
|
|
141
|
- Si se especifican dos argumentos, y ambos son vectores, se produce una
gráfica del segundo de ellos, versus el primero.
- En el eje vertical se colocan los valores de los elementos del segundo
vector de entrada.
- En el eje horizontal se colocan los valores del primer vector de
entrada.
|
|
142
|
- Ejemplo:
- t = 0:pi/100:2*pi;
- y = sin(t);
- plot(t,y)
|
|
143
|
- Se pueden crear múltiples gráficos de pares de vectores, con una sola
llamada al comando plot.
- MATLAB le asigna automáticamente un color diferente a cada gráfica, para
poderlas distinguir.
- La lista de colores puede ser alterada por el usuario.
|
|
144
|
- Ejemplo:
- y2 = sin(t–.25);
- y3 = sin(t–.5);
- plot(t,y,t,y2,t,y3)
|
|
145
|
- Se puede especificar el color y el tipo de línea y de marcadores, con la
sintaxis:
- plot(x,y,'color_estilo_marcador')
- Los marcadores son los símbolos con los que MATLAB representa los pares
ordenados graficados.
|
|
146
|
- El argumento 'color_estilo_marcador' es una cadena de texto de 1, 2 ó 3
caracteres.
- Las cadenas de caracteres deben encerrarse entre comillas simples ( ' ).
- Cada carácter del argumento 'color_estilo_marcador' representa un color,
un estilo de línea, o un tipo de marcador.
|
|
147
|
|
|
148
|
- Ejemplos de estilos de línea:
|
|
149
|
- Ejemplos de tipos de marcadores:
|
|
150
|
|
|
151
|
- Si no se especifica un estilo de línea, pero sí se especifica un tipo de
marcador, MATLAB dibuja sólo el marcador.
|
|
152
|
- El comando plot abre una nueva ventana de figuras automáticamente si no
hay ventanas ya abiertas.
- Si ya hay una ventana de figuras, plot utiliza esa ventana (opción por
defecto).
- Para abrir una nueva ventana de figuras, y convertirla en la ventana
activa, se usa el comando figure.
|
|
153
|
- La ventana activa es la última que tuvo el foco del teclado, o a la
última a la que se hizo click con el mouse.
- Los siguientes gráficos que se generen se graficarán en la ventana de
figuras activa.
|
|
154
|
- Para volver activa una ventana de figuras ya existente:
- Aquí, n es el número de la ventana de figura, el cual aparece en la
barra de título de la misma.
|
|
155
|
- El comando hold sirve para activar o desactivar el borrado de la ventana
de figuras, antes de graficar una nueva figura en la misma ventana.
- hold on hace que MATLAB grafique la nueva figura "encima" de
la que ya se encontraba en esa ventana.
- Si es necesario, MATLAB reescala el gráfico.
|
|
156
|
- El comando subplot permite mostrar varias figuras en la misma ventana,
pero en diferentes regiones de la misma.
- Sintaxis:
|
|
157
|
- Ejemplo:
- Esta secuencia crea una ventana de figuras con seis regiones para
graficar, distribuidas en dos filas, y tres columnas. Además, vuelve
activa la región 1, de manera que cualquier comando de graficación que
se ejecute a continuación dibujará la gráfica en la región 1.
|
|
158
|
|
|
159
|
- Si se usa plot con dos argumentos de entrada, y si estos vectores son
complejos, la parte imaginaria se ignora.
- Si se usa plot con sólo un argumento, y si es complejo, se grafica la
parte imaginaria versus la parte real del argumento de entrada.
- Por ejemplo, si Z es un vector complejo, plot(Z) es equivalente a plot(real(Z),imag(Z)).
|
|
160
|
- Ejemplo:
- t = 0:pi/10:2*pi;
- plot(exp(i*t),'–o')
|
|
161
|
- Para controlar las escalas, la orientación y la relación de aspecto de
los ejes del gráfico se utiliza el comando axis.
- Normalmente, MATLAB encuentra el máximo y mínimo de los datos y elige
una escala apropiada para mostrar las gráficas.
- Con el comando axis se pueden establecer escalas personalizadas.
|
|
162
|
- Ejemplos de sintaxis del comando axis:
- axis([xmin xmax ymin ymax])
- Establece los valores mínimo y máximo de cada eje.
- axis square
- Hace que el eje horizontal y vertical tengan la misma longitud.
- axis equal
- Hace que la distancia entre dos marcas sucesivas de un eje sea igual
que para el otro eje.
|
|
163
|
- axis auto
- Retorna el control de ejes al modo automático.
- axis on
- Hace visibles las marcas de los ejes y sus etiquetas.
- axis off
- Oculta las marcas de los ejes y sus etiquetas.
- grid off
- Oculta la retícula de líneas guía.
- grid on
- Hace visible la retícula de líneas guía.
|
|
164
|
- Etiquetas de los ejes x, y y z: comandos xlabel, ylabel y zlabel.
- Sintaxis: xlabel( 'etiqueta' )
- Título del gráfico: comando title.
- Sintaxis: title( 'título' )
- Colocación de texto en cualquier parte del gráfico: comando text.
- Sintaxis: text( coord_x , coord_y , 'texto' )
- Los comandos de etiquetado, título y texto admiten parcialmente el uso
de la notación Tex.
|
|
165
|
- La notación Tex es un estándar para la representación por computadora de
símbolos y expresiones matemáticas.
- Ejemplo de notación Tex:
|
|
166
|
- Ejemplo:
- t = –pi:pi/100:pi;
- y = sin(t);
- plot(t,y)
- axis([–pi pi –1 1])
- xlabel('–\pi \leq {\itt} \leq \pi')
- ylabel('sen(t)')
- title('Gráfica de la función seno')
- text(1,–1/3,'\it{Simetría impar.}')
|
|
167
|
|
|
168
|
- MATLAB define una superficie a través de coordenadas x, y, y z.
- El conjunto de coordenadas x e y definen una retícula en el plano x-y.
- Los valores de z representan la altura de la superficie, para cada punto
con coordenadas (x,y).
- MATLAB conecta los puntos con líneas, para formar una superficie.
|
|
169
|
- Gráficos de malla: función mesh.
- Produce un enrejado, con líneas que conectan los puntos en direcciones
perpendiculares.
- Gráficos de superficie: función surf.
- Adicionalmente al enrejado, la función surf colorea la superficie del
gráfico, es decir, el espacio que queda entre las líneas del enrejado.
|
|
170
|
|
|
171
|
- Una función de dos variables tiene la forma
- Las variables independientes de la función, x e y, son matrices, que
contienen las coordenadas de los puntos sobre el plano x-y que forman el
dominio de la función.
- Pueden haber tantos puntos en el plano x-y como se desee.
|
|
172
|
- Por ejemplo, considérese una función que tiene un dominio definido por -5
≤ x ≤ 5, -3 ≤ y ≤ 3.
- El dominio de esta función está conformado por una cantidad infinita de
puntos en el plano x-y.
- Sin embargo, MATLAB no puede graficar una cantidad infinita de puntos.
- Debe especificarse un conjunto finito de puntos para graficar, que
pertenezcan al dominio de la función.
|
|
173
|
- A mayor cantidad de puntos especificados, mayor parecido tendrá la
gráfica de MATLAB con la gráfica verdadera de la función.
- Por ejemplo, pueden escogerse todos los puntos del dominio cuyas
coordenadas estén separadas una unidad, o sea, x = -5, -4, -3, …, 0, 1,
…, 5; así como y = -3, -2, …, 0, 1, …, 3.
|
|
174
|
- En ese caso, el dominio de la función estaría conformado por el
siguiente conjunto de puntos:
|
|
175
|
- Por lo tanto, para ejecutar el comando mesh(x,y,z), la matriz x es el
conjunto de coordenadas horizontales del enrejado de puntos del plano
x-y, mientras que la matriz y es el conjunto de coordenadas verticales.
|
|
176
|
- La matriz z debe poseer un valor por cada posición del enrejado de
puntos del plano x-y, el cual representará la altura de la superficie en
ese punto.
- Los elementos de la matriz z se calculan a partir de la función
matemática que se quiere graficar, tomando como argumentos a las
matrices x e y.
|
|
177
|
- El enrejado de puntos puede construirse fácilmente con el comando meshgrid.
- [ x , y ] = …
- meshgrid( x_inicio : x_incremento : x_final ,…
- y_inicio : y_incremento : y_final )
- Si sólo se especifica un intervalo, meshgrid asume que el enrejado será
cuadrado.
- [ x , y ] = meshgrid( inicio : incremento : final )
|
|
178
|
- Ejemplo:
- [X,Y] = meshgrid(–8:.5:8);
- R = sqrt(X.^2 + …
- Y.^2) + eps;
- Z = sin(R)./R;
- mesh(X,Y,Z)
|
|
179
|
- Asigne al vector A 100 números aleatorios, cuyo valor oscile entre 0 y
100.
- A = fix( 100 * rand( 1 , 100 ) ) ;
- Grafique el vector A del ejercicio anterior.
- Grafique el vector A del ejercicio anterior, pero sin unir con líneas
los puntos de la gráfica. Haga la gráfica en una nueva ventana de
figuras.
|
|
180
|
- Grafique la función tangente, para valores entre –π y π. Haga
que los valores del eje horizontal coincidan con los valores de x.
- x = - pi : 0.1 : pi ;
- y = tan( x ) ;
- plot( x , y )
|
|
181
|
- Grafique las funciones seno, coseno y tangente, para el intervalo de –π
a π, en la misma ventana de figuras. Utilice sólo una sentencia plot.
- x = - pi : 0.1 : pi ;
- y1 = sin( x ) ;
- y2 = cos( x ) ;
- y3 = tan( x ) ;
- plot( x , y1 , x , y2 , x , y3 )
|
|
182
|
- Repita el ejercicio anterior, pero utilizando una sentencia plot por
cada gráfica. (Recuerde que las tres gráficas deben estar en la misma
ventana de figuras).
- plot( x , y1 )
- hold on
- plot( x , y2 )
- plot( x , y3 )
|
|
183
|
- Ajuste la gráfica del ejercicio anterior de manera que el rango de
visualización del eje horizontal sea de –π a π, y el vertical
de 0 a 1.
- axis( [ - pi , pi , 0 , 1 ] )
- Repita la gráfica del ejercicio 5, pero especificando colores, estilos
de línea y tipos de marcador diferentes para cada gráfica (en la misma
ventana de figuras).
- plot( x , y1 , 'b--+' , x , y2 , 'k:o' , x , y3 , 'g-.x' )
|
|
184
|
- Grafique las funciones del ejercicio 5, y el vector aleatorio del
ejercicio 1, en la misma ventana de figuras, pero en diferentes regiones
dentro de la ventana, usando dos filas y dos columnas de regiones.
Colóquele un título adecuado a cada gráfica.
- subplot( 2 , 2 , 1 )
- plot( A )
- title( 'Vector aleatorio' )
- subplot( 2 , 2 , 2 )
- plot( x , y1 )
- title( 'Función seno' )
- subplot( 2 , 2 , 3 )
- plot( x , y2 )
- title( 'Función coseno' )
- subplot( 2 , 2 , 4 )
- plot( x , y3 )
- title( 'Función tangente' )
|
|
185
|
- Grafique el número complejo 5+4i. Utilice un marcador en forma de
círculo pequeño.
- Grafique la función
z = f( x , y ) = sen( x ) + cos( y ) para -π≤x≤π, 2π≤y≤2π.
Utilice un gráfico de malla.
- [ x , y ] = meshgrid( - pi : .1 : pi , - 2 * pi : .1 : 2 * pi ) ;
- z = sen( x ) + cos( y ) ;
- mesh( x , y , z )
- Repita el ejercicio anterior, pero utilizando un gráfico de superficie.
|
|
186
|
- En una ventana de figuras, genere 6 regiones de graficación (2 filas y 3
columnas), y grafique lo que se indica en los numerales 2 al 7.
- En la región 1, grafique una función lineal de pendiente positiva, de
color rojo, y de trazo punteado, pero que los marcadores no se vean
sobresaltados en el gráfico. Además, en la misma región, una función
lineal, pero de pendiente negativa, de color verde, con trazo de puntos
y rayas, y marcadores en forma de cruz. Colóquele una etiqueta a cada
gráfica que la identifique.
|
|
187
|
- Considerando que un círculo de radio R y con centro en el origen está
formado por puntos con coordenadas x = R*cos(θ), y = R*sen(θ),
dibuje, en la región 2 de la ventana de figuras, un círculo de radio 2
con 16 puntos, ubicados equidistantemente cada 45°. Haga los arreglos
necesarios con los ejes para que la gráfica no se vea ovalada (se supone
que es un círculo).
|
|
188
|
- En la región 3, haga un gráfico de malla de una función de dos variables
independientes (diferente de la que se utilizó en la Exposición y
Demostración de la lección). Colóquele los nombres a los tres ejes de
coordenadas.
- En la región 4, grafique dos períodos de una función senoidal, y
colóqueles dentro del gráfico (y en un lugar apropiado) las etiquetas
siguientes: 0, π, 2 π, 3π, 4π.
|
|
189
|
- Deje en blanco la región 5, pero colóquele la retícula, y quítele los
ejes vertical y horizontal.
- En la región 6, dibuje un gráfico de superficie de la función f(x,y)=x+y,
para el intervalo de 4≤x≤10, -3≤y≤1. Haga que
los valores de los ejes que se visualicen no se salgan de los rangos
anteriores.
|
|
190
|
- Lección 7
- Ayuda y documentación en línea
|
|
191
|
|
|
192
|
- El comando help
- La ventana de ayuda
- El comando lookfor
- El centro de ayuda
- El comando doc
- Impresión de la ayuda de MATLAB
- Vínculo al sitio de MathWorks
|
|
193
|
- Es la forma más común de encontrar información acerca de la sintaxis y
el comportamiento de algún comando de MATLAB.
- Sintaxis: help nombre_de_función
|
|
194
|
|
|
195
|
- Todo el sistema de ayuda de MATLAB está disponible en inglés y en
japonés.
- En el texto de ayuda, MATLAB utiliza letras mayúsculas para los nombres
de funciones y de variables, para resaltarlos del resto del texto. Sin
embargo, al usar las funciones, deben usarse letras minúsculas.
|
|
196
|
- Todas las funciones de MATLAB están organizadas en grupos lógicos, y el
sistema de directorios de MATLAB está basado en dicha estructura.
- Se puede obtener un listado de todas las funciones de un directorio de
MATLAB, así como una breve descripción de las mismas, con el comando help
nombre_del_directorio.
|
|
197
|
|
|
198
|
- help, sin argumentos, devuelve un listado de todos los directorios, con
la descripción del tipo de funciones que almacena.
|
|
199
|
- Proporciona la misma ayuda que la que se encuentra disponible en la
ventana de comandos a través del comando help, pero provee vínculos
hacia otros temas de ayuda.
- Se accede desde el menú Help, o tecleando helpwin.
|
|
200
|
- Para abrir la ventana de ayuda mostrando información acerca de algún
tema en particular: helpwin tema.
- Ejemplo: helpwin colon operator
|
|
201
|
- Permite buscar la ayuda de los comandos por medio de una palabra clave.
- La búsqueda se realiza en la primera línea de ayuda de todos los
comandos (conocida como H1).
|
|
202
|
- Devuelve todas las líneas H1 de ayuda que contienen la palabra clave
solicitada.
- Ejemplo:
- MATLAB no tiene un comando que se llame inverse. Por lo tanto,
- Devuelve:
|
|
203
|
- Sin embargo, lookfor inverse devuelve una serie de comandos cuya línea
de ayuda H1 contiene la palabra "inverse".
- Si al comando se le agrega la opción -all, lookfor busca en todo el
texto de ayuda, y no sólo en la línea H1.
- Ejemplo: lookfor –all inverse
|
|
204
|
- Para detener la búsqueda, se ocupa la combinación de teclas Ctrl+C.
|
|
205
|
- El término en inglés es Help Desk.
- Proporciona toda una gama de información sobre el uso de MATLAB, a
través de documentos HTML que se muestran en el explorador de Internet
predeterminado de la PC.
- Se accede por medio del menú Help, o con el comando helpdesk.
|
|
206
|
- Sirve para ver la documentación de un comando particular, en formato
HTML en el explorador Web predeterminado.
- Ejemplo: para buscar información acerca de la función eval:
|
|
207
|
- Toda la documentación de MATLAB disponible con el producto se encuentra
además en formato PDF.
|
|
208
|
- Con el Help Desk se puede acceder al sitio de MathWorks, y a toda la
variedad de recursos e información que se encuentra en ese sitio.
|
|
209
|
- Lección 8
- El entorno de MATLAB
|
|
210
|
|
|
211
|
- El espacio de trabajo (Workspace)
- El comando save
- La ruta de búsqueda (Search Patch)
- Manipulación de archivos de disco
- El comando diary
- Ejecución de programas externos
|
|
212
|
- Es el área de memoria accesible desde la línea de comandos de MATLAB.
- Todas las variables que se crean están almacenadas en el Workspace.
- Para conocer las variables que se encuentran en el Workspace, se
utilizan los comandos who y whos.
|
|
213
|
- El comando who devuelve sólo la lista de variables.
- El comando whos devuelve además información sobre cada variable, como el
tamaño, la cantidad de bytes utilizada para almacenar cada variable, y
el tipo o "clase" de variable de que se trata.
|
|
214
|
- Si estos comandos no devuelven nada, se debe a que no se ha creado
ninguna variable.
- Para borrar todas las variables del Workspace, se utiliza el comando clear.
- Para borrar sólo algunas variables, se utiliza la opción clear nombre_de_variable_1,
nombre_de_variable_2, … etc.
|
|
215
|
- Sirve para guardar el contenido del Workspace en un archivo de extensión
.mat.
- Los archivos .mat se pueden leer luego con el comando load.
- Se puede especificar cuáles variables se desea guardar, si se escriben
los nombres de las variables a continuación del comando save.
|
|
216
|
- Por omisión, save guarda las variables en un archivo binario (que no
puede ser entendido por otras aplicaciones fuera de MATLAB).
- Si se quiere que los archivos .mat de sesión puedan abrirse desde fuera
de MATLAB, se pueden especificar algunas opciones al comando, como las
siguientes:
|
|
217
|
|
|
218
|
- Cuando se guardan las variables con formato de texto, se debe guardar
sólo una variable cada vez.
- Si se guarda más de una variable simultáneamente, MATLAB generará el
archivo .mat, pero no podrá ser cargado de nuevo con el comando load.
|
|
219
|
- Es el conjunto de directorios en los que MATLAB busca, de forma
ordenada, los comandos digitados en la línea de comandos.
- MATLAB ejecuta el primer archivo cuyo nombre coincide con el comando
digitado.
- Este comportamiento por defecto puede ser alterado, utilizando
directorios privados y subfunciones.
|
|
220
|
- El comando path muestra la ruta de búsqueda de MATLAB.
- Se puede agregar o modificar la ruta de búsqueda por medio de la opción Set
Path del menú File.
|
|
221
|
- A continuación se muestran algunos comandos que sirven para manipular
archivos con MATLAB, y su contraparte con comandos de DOS.
|
|
222
|
- La mayoría de estos comandos acepta el uso de rutas (URL's de archivos),
caracteres comodín, y designadores de unidades de disco de la misma
manera como se utilizan en DOS.
|
|
223
|
- Sirve para crear un archivo de texto que contenga el registro de todo lo
que se digitó en la línea de comandos, durante una sesión de MATLAB.
- Dicho archivo contiene además todos los resultados que MATLAB imprimió
en pantalla durante la sesión, exceptuando los gráficos.
|
|
224
|
- Sintaxis:
- diary
- Inicia la grabación en el archivo de texto de nombre diary.
- diary nombre_de_archivo
- Permite especificar un nombre diferente de diary para el archivo de
registro.
- diary off
- Suspende la grabación de sentencias en el archivo de registro.
|
|
225
|
- Para ejecutar programas externos, como si se hiciera desde la línea de
comandos de DOS, se utiliza el carácter de cierre de admiración (!)
- El carácter ! implica que el resto de la sentencia es un comando para
que sea ejecutado por el sistema operativo.
|
|
226
|
- El control del programa regresa a MATLAB cuando el programa externo
ejecutado termina.
- Por ejemplo, !notepad
|
|
227
|
- Guarde todo el trabajo posterior que realice en esta demostración en un
archivo de texto de nombre hoy.txt, con el comando diary.
|
|
228
|
- Limpie el Workspace, y genere cinco variables. Despliegue el listado de
las mismas en pantalla, así como alguna información de cada una de
ellas.
- clear
- a = 1 ;
- b = [ 1 , 2 ] ;
- c = 4 + 5i ;
- d = 20e15 ;
- e = -1 ;
- whos
|
|
229
|
- Guarde las variables del ejercicio anterior en un archivo llamado de
igual forma que su número de carné. Luego borre el Workspace y cargue
las variables de nuevo. Constate que las variables han sido cargadas
satisfactoriamente.
- save LS970081
- clear
- load LS970081
|
|
230
|
- Limpie el Workspace y genere una matriz aleatoria de 4 filas y 5
columnas. Luego guárdela en cinco archivos de texto, utilizando para
ello cada una de las opciones del comando save que se estudiaron. A
continuación, abra los archivos desde fuera de MATLAB con NOTEPAD, y
observe las diferencias entre ellos.
- clear
- m = rand( 4 , 5 ) ;
- save -ascii LS970081_1.txt
- save -ascii -double LS970081_2.txt
- save -ascii -double -tabs LS970081_3.txt
- save -v4 LS970081_4.txt
- save -append LS970081_5.txt
- (abrir archivos desde fuera de MATLAB y observar diferencias)
|
|
231
|
- Cree una carpeta en C:/ y agréguela al Search Path de MATLAB.
- Borre uno de los archivos de sesión que creó en los ejercicios
anteriores, utilizando el comando delete.
|
|
232
|
- Desactive el comando diary que inició en el ejercicio 1.
- Utilice el comando type para desplegar en pantalla el contenido del
archivo de registro que creó en el ejercicio 1, y que guardó todo lo que
realizó en esta Demostración.
|
|
233
|
- Utilice el comando de escape al sistema operativo para ejecutar NOTEPAD,
y abrir el archivo de registro que creó en el ejercicio 1.
|
|
234
|
- Lección 9
- Operaciones con matrices y arreglos
|
|
235
|
- Exposición
- Demostración
- Práctica
|
|
236
|
- Álgebra lineal
- Arreglos
- Escalares
- Expresiones lógicas
- Punteros lógicos
- La función find
|
|
237
|
- Definición
- Matriz cuadrada
- Matriz simétrica
- Multiplicación
- Determinantes
- Matriz singular
- Matriz identidad
- Matriz inversa
|
|
238
|
- El conjunto de operaciones matemáticas matriciales forman parte del
álgebra lineal.
|
|
239
|
- Es una matriz que tiene igual número de filas y de columnas.
- Por ejemplo:
- A = ones( 3 )
- ans =
- 1 1 1
- 1 1 1
- 1 1 1
|
|
240
|
- Es el resultado de sumar una matriz con su transpuesta.
- Ejemplo:
- A = magic( 4 ) ;
- A + A’
- ans =
- 32 8 11 17
- 8 20 17 23
- 11 17 14 26
- 17 23 26 2
|
|
241
|
- El número de columnas de la primera matriz debe ser igual al número de
filas de la segunda matriz.
- El resultado tiene el número de filas de la primera matriz, y el número
de columnas de la segunda.
- Por ejemplo, si A es de 2x3, y B es de 3x4, el resultado de A*B es de 2x4.
|
|
242
|
- La multiplicación se realiza de la siguiente manera:
|
|
243
|
- Se realiza con el operador *
|
|
244
|
- Se realiza con el comando det.
- Para obtener el determinante, la matriz debe ser cuadrada.
- El resultado es un escalar.
- Ejemplo
- A = [ 1 -2 3 ; -4 5
-6 ; 7 8 -9 ] ;
- det( A )
- ans =
- -42
|
|
245
|
- Es una matriz cuya determinante es cero.
- Ejemplo:
- det( magic( 4 ) )
- ans =
- 0
|
|
246
|
- Es una matriz cuadrada cuyos elementos son todos iguales a cero, excepto
los que están ubicados en la diagonal principal, que son iguales a 1.
- Las matrices identidad se generan con el comando eye.
- Ejemplo:
- eye( 3 )
- ans =
- 1 0
0
- 0 1
0
- 0 0
1
|
|
247
|
- Al multiplicar una matriz por su matriz inversa, el resultado es una
matriz identidad.
- Para calcular la inversa de una matriz, ésta debe ser cuadrada.
- La inversa de una matriz se encuentra con el comando inv.
|
|
248
|
- Ejemplo:
- A = [ 1 2 ; 4 5 ] ;
- B = inv( A ) ;
- A * B
- ans =
- 1 0
- 0 1
|
|
249
|
- Una matriz es un arreglo numérico de dos dimensiones que representa una transformación
lineal.
- Un arreglo es cualquier conjunto ordenado de objetos (entre ellos,
números), de cualquier dimensión.
- Un arreglo numérico de dos dimensiones es exactamente igual a una
matriz, excepto porque las operaciones aritméticas con arreglos se
realizan elemento por elemento, en lugar de someterse a las reglas del
álgebra lineal.
|
|
250
|
- Para las operaciones con arreglos, los operandos deben tener las mismas
dimensiones.
- La suma y la resta se realizan de igual forma para los arreglos
numéricos bidimensionales y para las matrices.
- Sin embargo, la multiplicación matricial es diferente que la multiplicación
de arreglos.
- La multiplicación de arreglos se realiza elemento por elemento.
|
|
251
|
|
|
252
|
- Para diferenciar las operaciones del álgebra lineal de las operaciones
con arreglos, al operador se le coloca un punto a la izquierda.
- A continuación se muestra un listado de las operaciones comunes con
arreglos.
|
|
253
|
|
|
254
|
- Las operaciones con arreglos son útiles para la generación de tablas.
- Ejemplo: Dado el vector n = ( 0 : 3 )’, se puede crear una tabla de n2,
y de 2n, con la siguiente sentencia:
- Lo cual genera:
|
|
255
|
- Las funciones matemáticas elementales trabajan con arreglos, aplicando
la función elemento por elemento, y devolviendo un arreglo de
resultados, de las mismas dimensiones que el arreglo de entrada.
|
|
256
|
- Ejemplo: Para construir una tabla de logaritmos:
- format short g
- x = ( 1 : 0.2 : 2 )’ ;
- logs = [x , log10(x)]
|
|
257
|
- Un escalar es un arreglo de dimensión 1x1.
- Las operaciones con arreglos se pueden aplicar a escalares, o a un
arreglo con un escalar.
- Ejemplo: Si A = [ 2 , 4 ; 6 , 8 ], la sentencia
- Produce:
|
|
258
|
- Se puede reemplazar el contenido de una región rectangular de un arreglo
por un escalar.
- Ejemplo: Si A = ones( 4 ), la sentencia:
- Produce:
- 1 1 4 4
- 1 1 4 4
- 1 1 1 1
- 1 1 1 1
|
|
259
|
- Definiciones
- Operadores
- Funciones
|
|
260
|
- Las expresiones lógicas son un conjunto coherente de operadores,
funciones y operandos que devuelven un resultado de tipo lógico al ser
evaluados.
- El resultado de las expresiones lógicas puede ser verdadero o falso.
- El valor de verdadero es cualquier número diferente de cero.
- El valor de falso es el cero.
|
|
261
|
- Los operadores son símbolos que representan a una operación que se
realiza a uno o dos argumentos, llamados operandos.
- La sintaxis general de los operadores es la siguiente:
- Para operaciones que aceptan sólo un operando:
- Para operaciones que aceptan dos operandos:
- operando_1 operador operando_2
|
|
262
|
- Los operadores pueden aplicarse entre dos operandos de los siguientes
tipos:
- Dos escalares devuelven un escalar.
- Dos arreglos del mismo tamaño devuelven un arreglo de resultados. La
operación se realiza elemento por elemento.
- Dos arreglos de diferente tamaño producen un error.
- Un arreglo y un escalar devuelven un arreglo del mismo tamaño que el
arreglo de entrada. La operación se realiza entre cada elemento del
arreglo y el escalar.
|
|
263
|
- Los operadores que pueden ser utilizados son de tres tipos:
- Aritméticos
- Relacionales
- Lógicos
|
|
264
|
|
|
265
|
|
|
266
|
- Ejemplo:
- Produce:
- Por otro lado:
- Produce:
|
|
267
|
- Ejemplo: Si A = [ 1 , 2 ; 3 , 4 ] y
B = [ 2 , 4 ; 0 , 5 ], entonces la operación:
- Produce:
|
|
268
|
- Ejemplo: Si A = [ 1 , 2 ; 3 , 4 ] y B = 2.5, entonces la operación A
> B produce:
|
|
269
|
|
|
270
|
- La operación AND devuelve un resultado verdadero (uno) si ambos
operandos son verdaderos. De lo contrario, devuelve un resultado falso.
- La operación OR devuelve un resultado verdadero si al menos uno de los
operandos es verdadero. De lo contrario, devuelve un resultado falso.
- La operación NOT devuelve un resultado contrario al operando. Si el
operando es verdadero, devuelve un resultado falso, y viceversa.
|
|
271
|
- Ejemplo: Si A = [ 1 , 0 ; 3 , 0 ] y B = [ 0 , -2 ; 4 , 0 ], la operación
A & B devuelve:
- Por otro lado, la operación A | B devuelve:
|
|
272
|
- Las funciones son el conjunto de reglas por las que se asigna un valor
de salida, a uno o varios valores de entrada.
- Los valores de entrada de la función se denominan argumentos.
- La sintaxis general de las funciones es la siguiente:
- variable_de_salida = nombre_de_función( argumento_1 , argumento_2 , ...
, argumento_n )
|
|
273
|
- El comportamiento de las funciones depende de la cantidad y tipo de
argumentos de entrada y de salida para las que han sido diseñadas.
|
|
274
|
- A continuación se resume el comportamiento general para funciones de una
entrada y una salida:
- Si la entrada es escalar, la función se aplica sólo a ese número.
- Si la entrada es vector, todos sus elementos participan para la
generación de la salida de la función.
- Si la entrada es matriz, se aplica la función a cada vector columna de
la misma. Se devuelve un vector fila de resultados.
|
|
275
|
- Para funciones de dos argumentos de entrada, el comportamiento general
es el siguiente:
- Si las entradas son ambas escalares, se aplica la función utilizando
ambos argumentos.
- Si ambas entradas son arreglos, del mismo tamaño, se aplica la función
a cada pareja de elementos, tomando un elemento de un arreglo, y un
elemento del otro. El resultado se devuelve en un arreglo del mismo
tamaño.
- Si un argumento es escalar y el otro es un arreglo, se aplica la
función tomando cada elemento del arreglo con el mismo escalar. El
resultado es un arreglo de las mismas dimensiones que el arreglo de
entrada.
|
|
276
|
- MATLAB cuenta con los siguientes tipos de funciones:
- Funciones matemáticas
- Funciones lógicas
- Funciones del lenguaje de programación
|
|
277
|
- MATLAB cuenta con una gran variedad de funciones matemáticas
elementales, especializadas, matriciales, de análisis de datos, de
interpolación y polinomios, y de cálculo diferencial e integral.
- Un listado completo de las funciones matemáticas de MATLAB se puede
obtener con el comando help.
|
|
278
|
|
|
279
|
|
|
280
|
- Ejemplos:
- u = [0 1 2 0];
- all(u)
- ans =
- 0
- A = [0 1 2;3 5 0];
- all(A)
- ans =
- 0 1 0
|
|
281
|
- Existen más funciones lógicas de MATLAB, cuyo listado puede accederse en
el directorio ops de la ayuda (help ops).
|
|
282
|
- Son funciones de MATLAB que realizan una variedad de tareas. Se
distinguen los siguientes tipos:
- Funciones en archivos M: Son archivos de texto en los que se escriben
todas las sentencias de código que se desean ejecutar. Son editables, y
hay de dos tipos:
- Funciones de MATLAB (que vienen con el producto)
- Funciones de usuario
- Funciones integradas (o built-in): Son archivos binarios no editables,
pero que se ejecutan más rápidamente.
|
|
283
|
- Son matrices que han resultado de la evaluación de una expresión lógica.
- Están formados solamente por unos y ceros.
- Son de tipo logical.
- Ejemplo: Si A = [ 1 , 0 , - 2 ; 4 , 7 , 3 ], la secuencia:
- Produce:
|
|
284
|
- Los punteros sirven para hacer referencia a los elementos de un arreglo
(igual que los punteros normales).
- La diferencia es que el valor de los punteros no es una posición en un
arreglo (el valor sólo puede ser 1 ó 0).
- La posición de los elementos que se quieren referenciar es la misma que
la de los punteros verdaderos (con valor de 1).
|
|
285
|
- Ejemplo: Dado el arreglo:
- A = [ 1 , 0 , - 2 ; 4 , 7 , 3 ]
- Si se quiere acceder a los elementos de A comprendidos entre -1 y 4, se
puede utilizar la sentencia:
- A( A > -1 & A < 4 )
- ans =
- 1
- 0
- 3
|
|
286
|
- Dichos elementos se pueden borrar, con:
- A( A > -1 & A < 4 ) = [ ]
- A =
- 4 7 -2
- O se pueden cambiar a otro valor, con:
- A( A > -1 & A < 4 ) = 100
- A =
- 100 100 -2
- 4 7 100
|
|
287
|
- Determina las ubicaciones de los elementos de un arreglo que satisfacen
alguna condición lógica especificada.
- Devuelve un vector columna de punteros de tipo único.
|
|
288
|
- Por ejemplo, si:
- A = [ 1 , 0 , - 2 ; 4 , 7 , 3 ]
- A =
- 1 0 -2
- 4 7 3
- La secuencia find( A < 2 ) devuelve:
- ans =
- 1
- 3
- 5
- Eso indica que en la posición 1, 3 y 5 (en orden de columna) del
arreglo A se encuentran elementos que son menores que 2.
|
|
289
|
- Compruebe que la multiplicación de una matriz cuadrada con la
transpuesta de sí misma da como resultado una matriz simétrica.
- A = [ 3 , 5 ; -1 , -2 ] ;
- A * A’
- ans =
- 34 -13
- -13 5
|
|
290
|
- Demuestre que la matriz de Dürer es singular.
- a = magic( 4 ) ;
- det( a )
- ans =
- 0
|
|
291
|
- Dada la matriz a = [ -1 , 4 ; 3 , -2 ], demuestre que la multiplicación
de a por su inversa es igual a la matriz identidad.
- a = [ -1 , 4 ; 3 , -2 ]
- a * inv( a )
- ans =
- 1 0
- 0 1
|
|
292
|
- Dada la matriz a = [ 1 , 2 , 3 ; 4 , 5 , 6 ] y la matriz b = [ 3 ; -1 ;
0 ], realice la multiplicación matricial siguiendo la definición,
utilizando para ello una sola sentencia. Luego realice la multiplicación
por medio del operador de MATLAB, y compare los resultados obtenidos.
- a = [ 1 , 2 , 3 ; 4 , 5 , 6 ] ;
- b = [ 3 ; -1 ; 0 ] ;
- c1 = [ a( 1 , 1 ) * b( 1 ) + a( 1 , 2 ) * b( 2 ) + a( 1 , 3 ) * b( 3 )
; ...
- a( 2 , 1 ) * b( 1 ) + a( 2 ,
2 ) * b( 2 ) + a( 2 , 3 ) * b( 3 ) ] ;
- c2 = a * b ;
- c1 == c2
- ans =
- 1
- 1
|
|
293
|
- Utilice operaciones de arreglos para hacer una tabla que contenga lo
siguiente:
- Una columna de los números pares, desde 2 hasta 20.
- Una columna con el logaritmo natural de esos números.
- Una columna con el cuadrado de esos números.
|
|
294
|
- n = ( 2 : 2 : 20 )’ ;
- tabla = [ n , log( n ) , n.^2 ]
|
|
295
|
- Dada la matriz tabla del ejercicio anterior, genere una matriz tabla2,
que sea igual a tabla, excepto por lo siguiente:
- Reemplace todos los números de la primera columna, ubicados desde la
fila 6 a la 10, por el número cero.
- tabla2 = tabla ;
- tabla2( 6 : 10 ) = 0
|
|
296
|
- Reemplace por el número -1 todos los elementos de la tabla que sean
mayores o iguales que 2 y menores que 2.5.
- tabla2( find( tabla2 >= 2 & tabla2 < 2.5 ) ) = -1
- Reemplace por el número -2 todos los elementos de la tabla cuyo
cuadrado sea mayor que 1000.
- tabla2( find( tabla2.^2 > 1000 ) ) = -2
|
|
297
|
- El archivo notas.txt, que le
proporcionará su instructor, contiene un vector columna de las
notas de un curso de 40 estudiantes. La posición de fila de cada nota
corresponde al número de lista de cada alumno. Con respecto a este
archivo, realice lo siguiente:
- Guarde todo su trabajo de esta práctica en un archivo de texto.
Sugerencia: Utilice el comando diary.
|
|
298
|
- Cargue el archivo notas.txt a una variable en MATLAB llamada notas.
Sugerencia: Utilice el comando load.
- Asigne al vector aprobados todos los elementos del vector notas que sean
mayores o iguales a 6.0.
|
|
299
|
- Asigne al vector reprobados todos los elementos del vector notas que
sean menores que 6.0.
- Agregue una columna al vector notas que contenga un 1 si la nota está
aprobada, y un 0 si está reprobada.
|
|
300
|
- Utilice operaciones de arreglos para calcular la nota promedio de los
alumnos aprobados y de los reprobados.
|
|
301
|
- Lección 10
- Control de flujo
|
|
302
|
|
|
303
|
- MATLAB cuenta con cinco estructuras de control de flujo:
- Sentencias if
- Sentencias switch-case
- Lazos for
- Lazos while
- Sentencias break
|
|
304
|
- Evalúa una expresión lógica y ejecuta un grupo de sentencias si la
expresión es verdadera.
- Se pueden utilizar las palabras clave opcionales else y elseif, para
ejecutar grupos de sentencias alternativas.
- Se utiliza la palabra clave end al final de la estructura if.
|
|
305
|
- Sintaxis:
- if expresión lógica
- sentencias si es verdadera
- elseif expresión lógica
- sentencias si es verdadera
- else
- sentencias si es falsa
- end
|
|
306
|
- Si la expresión lógica de if es una matriz, se dice que el resultado es
verdadero si TODOS los elementos de la matriz resultante son verdaderos.
- Para comprobar si dos variables son iguales es preferible usar el
comando isequal, porque si se usa el operador ==, se producirá un error
si los arreglos no son del mismo tamaño.
|
|
307
|
- Otras funciones útiles para utilizar en conjunción con if son:
- isempty: Indica si su argumento es un arreglo vacío.
- all: Devuelve verdadero si todos los elementos de un arreglo son
verdaderos.
- any: Devuelve verdadero si al menos un elemento de un arreglo es
verdadero.
|
|
308
|
- Sirven para seleccionar un grupo de sentencias que se desea ejecutar,
dependiendo del valor de una expresión o variable.
- Las palabras clave case y otherwise (opcional) delimitan los grupos de
sentencias.
- Al ejecutarse el primer bloque de sentencias cuya expresión devuelva un
valor igual que el de la expresión de prueba, se termina la ejecución de
switch.
|
|
309
|
- Sintaxis:
- switch expresión
- case expresión_1
- sentencias
- case expresión_2
- sentencias
- otherwise
- sentencias
- end
|
|
310
|
- Se ejecutan las sentencias correspondientes al bloque case cuya
expresión devuelve el mismo valor que la expresión que acompaña a switch.
- Las sentencias del bloque otherwise se ejecutan si ninguno de los
bloques case se ejecutó.
- El uso de otherwise es opcional.
- Las expresiones usadas con switch y case deben ser escalares o cadenas.
|
|
311
|
- Repite un conjunto de sentencias un número de veces predeterminado.
- Sintaxis:
- for variable = valores
- sentencias
- end
|
|
312
|
- valores puede ser un vector, o una matriz.
- Si es un vector, por cada vez que se repita el bucle la variable toma
uno de los valores del vector.
- Por ejemplo, en for i = [ 2 , 4 , -1 , 0 ], el bucle se ejecutará 4
veces, porque el vector tiene cuatro elementos. La primera vez, la
variable i valdrá 2; la segunda vez, 4; la tercera vez, -1; y la cuarta
vez, 0.
|
|
313
|
- Generalmente, el vector de valores que tomará la variable se construye
con el operador dos puntos, de la siguiente manera:
- for i = inicio : incremento : final
- Por ejemplo, for i = 10:-1:2, se ejecutará 9 veces. La primera vez, la
variable i valdrá 10, y la última vez valdrá 2. Cada vez que se ejecute
el bucle, la variable se decrementará una unidad.
- Recuérdese que si no se especifica el incremento con el operador dos
puntos, se asume la unidad.
|
|
314
|
- En lugar de un vector de valores, se puede usar una matriz con la
sentencia for.
- El bucle se ejecutará tantas veces como columnas tenga dicha matriz.
- Cada vez que se ejecute el bucle, la variable tomará el valor de una de
las columnas de la matriz.
|
|
315
|
- Por ejemplo, for i = [ 1 , 2 ; 3 , 4 ; 5 , 6 ], se ejecutará dos veces,
porque la matriz tiene dos columnas.
- La primera vez, la variable i será igual al vector columna [ 1 ; 3 ; 5 ].
La segunda vez, será igual al vector columna [ 2 ; 4 ; 6 ].
|
|
316
|
- Repite un conjunto de sentencias un número indeterminado de veces, hasta
que una condición se deje de cumplir.
- Sintaxis:
- while expresión lógica
- sentencias
- end
|
|
317
|
- Sirve para terminar prematuramente un bucle for o while.
- Si hay bucles anidados, break sólo se sale del bucle desde donde se
ejecutó.
|
|
318
|
- Escriba las sentencias necesarias para multiplicar dos arreglos, a y b
(del mismo tamaño), sin utilizar el operador .* de MATLAB, y utilizando
para ello lazos for. Devuelva el resultado en la variable d.
- [ nfilas , ncolumnas ] = size( a ) ;
- for f = 1 : nfilas
- for c = 1 : ncolumnas
- d( f , c ) = a( f , c )
* b( f , c ) ;
- end
- end
|
|
319
|
- Repita el ejercicio anterior, pero utilizando sólo bucles while.
- [ nfilas , ncolumnas ] = size( a ) ;
- f = 1 ; c = 1 ;
- while f <= nfilas
- while c <= ncolumnas
- d( f , c ) = a(
f , c ) * b( f , c ) ;
- c = c + 1 ;
- end
- c=1;
- f = f + 1 ;
- end
|
|
320
|
- Utilizando la sentencia if, escriba un programa para ordenar el vector v,
de dos elementos, de forma descendente, y guardar el resultado en el
vector w. Si los elementos de v son iguales, que se despliegue un
mensaje de advertencia en pantalla.
- if v( 1 ) > v( 2 )
- w = v ;
- elseif v( 1 ) < v( 2 )
- w = [ v( 2 ) , v( 1 ) ] ;
- else
- disp('Los elementos del vector
son iguales')
- end
|
|
321
|
- Repita el ejercicio anterior, pero utilizando solamente la instrucción switch.
- m = max( v( 1 ) , v( 2 ) ) ;
- switch m
- case v( 1 )
- w = v ;
- case v( 2 )
- w = [ v( 2 )
, v( 1 ) ] ;
- end
|
|
322
|
- Lección 11
- Otras estructuras de datos
|
|
323
|
|
|
324
|
- Arreglos multidimensionales
- Arreglos de celdas
- Cadenas de caracteres
- Estructuras
|
|
325
|
- Son los arreglos con más de dos punteros.
- Por ejemplo, para arreglos de tres dimensiones, el primer puntero es la
posición de fila; el segundo es la posición de columna, y el tercero es
la posición de página.
|
|
326
|
|
|
327
|
- Para acceder a páginas completas de un arreglo tridimensional se puede
usar el operador dos puntos.
- Por ejemplo, para acceder a la tercera página de A:
|
|
328
|
- Las funciones de MATLAB que crean arreglos bidimensionales pueden crear
arreglos multidimensionales, agregándoles la cantidad de argumentos
necesaria.
- Por ejemplo, para crear un arreglo de ceros, de 3 dimensiones, de tamaño
3x4x2:
|
|
329
|
- Son arreglos formados por celdas.
- Cada celda puede contener cualquier tipo de dato de MATLAB, por ejemplo,
un número, una matriz, un arreglo multidimensional, una cadena de
caracteres, otro arreglo de celdas, una estructura, etc.
- Pueden contener en cada celda elementos de diferente tamaño.
- Se definen igual que los arreglos numéricos, excepto que se usan llaves
{ } en lugar de corchetes [ ].
|
|
330
|
- Por ejemplo, si A = magic( 4 ), la sentencia:
- C = { A , sum( A ) , prod( prod( A ) ) }
- produce un arreglo de celdas de 1x3 (una fila, tres columnas.
- El primer elemento, ubicado en la posición C{ 1 , 1 }, es la matriz A
de 4x4.
- El segundo elemento, C{ 1 , 2 } (o simplemente C{ 2 } es un vector fila
de 4 elementos (la suma de cada columna de A).
- El tercer elemento, C{ 3 }, es un escalar (el resultado de multiplicar
todos los elementos de A).
|
|
331
|
- En la ventana de comandos, el arreglo C luce de la siguiente manera:
- C =
- [4x4 double] [1x4 double] [20922789888000]
- Los primeros dos elementos son muy grandes para representarlos en una
línea, por lo que se muestra sólo su tamaño.
|
|
332
|
- El texto, en MATLAB, se ingresa encerrándolo entre comillas simples ( '
). [No confundir con el apóstrofe].
- Las cadenas de caracteres son arreglos. Cada carácter es una posición
del arreglo.
- Por ejemplo:
- es un arreglo de 1 fila y 4 columnas (cuatro letras).
- Los caracteres se almacenan por medio de su código ASCII.
|
|
333
|
- Para transformar las cadenas en vectores numéricos de códigos ASCII, se
utiliza la función double.
- Por ejemplo, a = double( c ), devuelve:
- Lo que significa que el código ASCII de la letra h es 104; el de la o es
111; etc.
|
|
334
|
- Para convertir nuevamente el vector de códigos ASCII a texto, se utiliza
la función char.
- d = char( [ 104 , 111 , 108 , 97 ] )
- d =
- hola
|
|
335
|
- Las cadenas, por ser arreglos, se pueden concatenar, y acceder de la
forma usual.
- Por ejemplo, si a = 'hola', y b = 'mundo', se puede generar el texto 'hola_mundo'
con la sentencia:
- Con la sentencia c ( 5 ) = ' ' (con un espacio en blanco en medio de
las comillas simples) se cambia el guión bajo de la cadena en c por un
espacio en blanco, resultando en 'hola mundo'.
|
|
336
|
- Se pueden generar arreglos de caracteres, de la siguiente manera:
- Por concatenación:
- a = 'hola' ; b = 'Pepe' ; c = [ a ; b ]
- c =
- hola
- Pepe
- El resultado es un arreglo de dos filas y 4 columnas.
- Para concatenar, las dimensiones de las cadenas que se concatenan
deben ser coherentes. Todas las líneas de texto deben tener la misma
cantidad de caracteres.
|
|
337
|
- Por medio de la función char:
- a = 'hola' ; b = 'Pepe' ; c = char( a , b )
- c =
- hola
- Pepe
- El comando char se encarga de agregar espacios en blanco al final de
la cadena para asegurarse de que todas las filas del arreglo tengan la
misma cantidad de caracteres (columnas).
|
|
338
|
- Para evitar agregarle espacios en blanco a las cadenas al formar
arreglos de caracteres, se pueden utilizar arreglos de celdas de cadenas,
que son arreglos cuyos elementos son todos cadenas.
- Por ejemplo, C = { 'hola' ; 'mundo' } crea un arreglo de celdas de
cadenas de 2x1. El primer elemento es un arreglo de caracteres de 1x4,
y el segundo es de 1x5.
- Con los arreglos de celdas no se necesita agregar espacios en blanco al
final de cada fila.
- La función cellstr convierte arreglos de caracteres en arreglos de
celdas de cadenas.
- La función char puede hacer la conversión inversa.
|
|
339
|
- Las estructuras están conformadas por campos.
- Los nombres de campo se separan del nombre de la estructura por medio de
un punto.
- En cada campo se puede almacenar cualquier tipo de dato de MATLAB.
- Las estructuras se pueden crear de forma explícita, asignando elementos
a cada campo de la variable, o por medio del comando struct.
|
|
340
|
- Por ejemplo, para crear una estructura llamada alumnos, con tres campos:
nombre, edad, y notas, se pueden utilizar las siguientes sentencias:
- Asignando valores a los campos:
- alumnos.nombre = 'Juan Pérez' ;
- alumnos.edad = 26 ;
- alumnos.notas = [ 10 , 8.5 , 7.4 ] ;
- Por medio del comando struct:
- alumnos = struct( 'nombre' , 'Juan Pérez' , 'edad' , 26 , 'notas' , [
10 , 8.5 , 7.4 ]
|
|
341
|
- Al teclear alumnos en la línea de comandos, resulta:
- alumnos =
- nombre: 'Juan Pérez'
- edad: 26
- notas: [10 8.5000 7.4000]
|
|
342
|
- Las estructuras pueden formar arreglos de estructuras. Para ello,
simplemente se agregan los elementos del arreglo, utilizando además los
nombres de campo.
- Por ejemplo, para agregar otro registro al arreglo de estructuras alumnos,
se podrían utilizar las siguientes sentencias:
- alumnos(2).nombre = 'Carlos Pineda' ;
- alumnos(2).edad = 20 ;
- alumnos(2).notas = [ 5.5 , 7 , 9 ] ;
|
|
343
|
- Se pueden agregar nuevos registros con el comando struct, por ejemplo,
así:
- alumnos(2) = struct( 'nombre' , 'Carlos Pineda' , 'edad' , 20 , 'notas'
, [ 5.5 , 7 , 9 ]
|
|
344
|
- Como la estructura ya contiene varios registros (dos), en la ventana de
comandos sólo se muestra un resumen de la misma:
- alumnos =
- 1x2 struct array with fields:
- nombre
- edad
- notas
|
|
345
|
- Hay varias formas de utilizar el contenido de las estructuras.
- Una forma es a través de listas.
- Una lista es un conjunto de elementos, separados por comas.
|
|
346
|
- Un ejemplo de lista sería:
- MATLAB devuelve:
|
|
347
|
- Al seleccionar todos los elementos de un campo en una estructura, el
resultado es una lista.
- Por ejemplo, la sentencia alumnos.edad produce la lista:
|
|
348
|
- Las listas se pueden ocupar para crear otros tipos de datos de MATLAB, o
para ser usados por funciones (un listado de argumentos).
- Por ejemplo, la sentencia:
- Crea el vector [ 26 , 20 ].
- Por otro lado, la sentencia sum( alumnos.edad ) devuelve:
|
|
349
|
- Cree un arreglo multidimensional cuya primera página sea una matriz
mágica de 4x4, y cuya segunda página sea una matriz aleatoria de 4x4.
- c( : , : , 1 ) = magic( 4 ) ;
- c( : , : , 2 ) = rand( 4 ) ;
|
|
350
|
- Convierta el arreglo multidimensional anterior en un arreglo de celdas
de 2x1. Coloque la matriz de la primera página en la primera celda, y la
matriz de la segunda página en la segunda celda.
- d{ 1 , 1 } = c( : , : , 1 ) ;
- d{ 2 , 1 } = c( : , : , 2 ) ;
|
|
351
|
- Conociendo que los códigos ASCII simplificados correspondientes a los
caracteres "imprimibles" están asignados a los enteros del 32
al 127, escriba un archivo M que los imprima en pantalla.
|
|
352
|
- Dado el arreglo numérico A = [ 1 , 2 ; 3 , 4 ], escriba las sentencias
necesarias para formar la estructura B, con los campos fila_1 y fila_2,
correspondientes a las filas 1 y dos del arreglo A.
- B.fila_1 = A( 1 , : ) ;
- B.fila_2 = A( 2 , : ) ;
|
|
353
|
- Lección 12
- Guiones y funciones
|
|
354
|
- Exposición
- Demostración
- Práctica
|
|
355
|
- Archivos M
- Guiones
- Funciones
- Comandos nargin y nargout
- Variables globales
- Dualidad comando/función
- La función eval
|
|
356
|
- Son archivos de texto simple en los que se pueden escribir programas en
el lenguaje de programación de MATLAB.
- Se pueden crear con cualquier editor de texto.
- MATLAB tiene su propio editor, que puede accederse en el menú File / New
/ M-file.
|
|
357
|
- Algunas de las ventajas del editor de MATLAB son las siguientes:
- Uso de diferentes colores para diferentes tipos de código, por ejemplo,
para los comentarios, las palabras claves, las cadenas, etc.
- Espaciado automático en las estructuras de control de flujo.
- Herramientas para la depuración de los programas.
|
|
358
|
- Los archivos de texto se pueden imprimir además en la ventana de
comandos, con el comando type.
|
|
359
|
- Son archivos M que contienen un conjunto de sentencias de MATLAB.
- Presentan las siguientes características:
- No aceptan argumentos de entrada, ni devuelven argumentos de salida.
- Su espacio de trabajo es global.
- La primera característica significa que no se pueden pasar valores a un
guión, para que sean utilizados por las sentencias del mismo. Tampoco
puede devolver de forma explícita los resultados de sus cálculos.
|
|
360
|
- La segunda característica significa que las variables que se generen
dentro del guión estarán disponibles en la línea de comandos después de
finalizada su ejecución.
- Además, las variables creadas en la línea de comandos antes de la
ejecución del guión podrán ser utilizadas por el mismo.
|
|
361
|
- Por lo tanto, si bien no se pueden asignar argumentos de entrada ni
salida, se pueden crear variables en el Workspace global antes de
ejecutar el guión, y los resultados del mismo se pueden guardar en
variables disponibles después de la ejecución del mismo.
|
|
362
|
- Las sentencias de un guión se ejecutarán en el mismo orden en el que se
encuentran, como si se digitaran en la línea de comandos una por una.
- Para ejecutar un guión, simplemente se escribe el nombre del archivo en
la línea de comandos (sin extensión) y se presiona “Enter”.
|
|
363
|
- Ejemplo: El siguiente guión, graficar.m, crea un gráfico en pantalla de
una función sinusoidal.
|
|
364
|
- Las funciones son archivos M que tienen el mismo propósito que los
guiones: ejecutar un conjunto de sentencias de MATLAB.
- Sin embargo, a diferencia de los guiones, presentan las siguientes
características:
- Pueden aceptar argumentos de entrada, y pueden devolver argumentos de
salida.
- Su espacio de trabajo es local.
|
|
365
|
- La primera característica significa que durante la invocación de la
función se pueden incluir argumentos de entrada y de salida.
- La segunda característica significa que las variables creadas dentro de
la función sólo pueden ser usadas por la función. Al finalizar la
ejecución, todas las variables se pierden.
- Por otro lado, las variables del Workspace global (las de la línea de
comandos) no pueden ser usadas dentro de la función.
|
|
366
|
- Las partes de una función son las siguientes:
- Línea de definición de la función.
- Línea de ayuda H1.
- Texto de ayuda de la función.
- Cuerpo de la función
|
|
367
|
- nargin devuelve el número de argumentos de entrada con los que se invocó
una función.
- Por ejemplo, si una función llamada prueba se invocó con tres
argumentos, así:
- prueba( 10 , -2 , [ 2 , 3 ] )
- entonces el comando nargin, si se utiliza dentro de la función,
devuelve el valor de 3.
|
|
368
|
- Por otro lado, el comando nargout devuelve el número de argumentos de salida
con los que se invocó una función.
|
|
369
|
- Su sintaxis es la siguiente:
- La palabra clave function le indica a MATLAB que el archivo M es una
función, y no un guión.
- var_salida es la variable de salida, que puede tener cualquier nombre.
|
|
370
|
- nombre_fun es el nombre de la función, que puede ser cualquier nombre.
Sin embargo, debe ser igual que el nombre del archivo M en donde se
guarde la función.
- Los argumentos de entrada arg1, arg2, etc. deben ir separados por comas.
Puede haber tantos como se desee.
|
|
371
|
- Si la función no devuelve salidas, simplemente se omite la variable de
salida en la línea de definición.
- Si la función no utiliza argumentos de entrada, simplemente se omiten en
la línea de definición.
|
|
372
|
- Si la función devuelve más de una salida, se colocan entre corchetes,
así:
|
|
373
|
- Es la primera línea de texto después de la línea de definición de la
función.
- Consiste en una línea de comentarios que describe de manera general lo
que hace la función.
- Los comentarios en MATLAB se distinguen porque inician con el carácter
de porcentaje (%).
|
|
374
|
- La línea H1 (help 1) sirve principalmente para dos cosas:
- Para mostrar una descripción breve de la función que aparece al
solicitar la ayuda de un directorio, con el comando help. Ejemplo: help
matfun (la ayuda del directorio matfun).
- Es en esta línea de ayuda en donde el comando lookfor busca el texto
requerido.
|
|
375
|
- La línea H1 es opcional, pero, al igual que el texto de ayuda, se
recomienda mucho incluirlo en todas las funciones que se creen.
- Se acostumbra seguir el siguiente formato para la línea H1, colocando el
nombre de la función en mayúsculas, seguida de una breve descripción.
|
|
376
|
- Es un bloque opcional de comentarios que se coloque después de la línea
H1.
- Sirve para explicar detalladamente la forma en la que debe usarse la
función, y qué es lo que hace.
- Se acostumbra colocar cada sintaxis que soporta la función, con qué
tipos de entradas y salidas, y la descripción de lo que se realiza con
esa sintaxis.
|
|
377
|
- Se acostumbra además colocar ejemplos de uso de la función dentro del
texto de ayuda, así como los nombres de otras funciones que tengan
relación con ésta.
- La línea H1 y el texto de ayuda se imprimen en pantalla cuando se aplica
el comando help a la función.
- Por ejemplo, vea la ayuda de la función size, e identifique sus partes: help
size.
|
|
378
|
- Es el conjunto de sentencias que la función debe ejecutar.
- Debe asegurarse que se asignen valores a los argumentos de salida antes
que la función finalice.
- No se utiliza ninguna palabra clave para finalizar la función.
|
|
379
|
- A continuación se muestra un ejemplo de función, que se encarga de sumar
dos números. La función (y el archivo M) se llaman suma.
|
|
380
|
- Las variables globales se pueden compartir entre dos o más funciones, de
forma que las modificaciones hechas por una función afectarán a las
demás cuando utilicen esta variable.
- Para usar variables globales, se deben declarar en cada función en donde
se desean utilizar.
|
|
381
|
- La declaración se realiza con el comando global, utilizando la sintaxis
siguiente:
- También se pueden declarar variables globales en la línea de comandos,
para compartirlas con las funciones.
|
|
382
|
- La declaración de las variables debe hacerse antes de utilizarlas por
primera vez dentro de la función.
|
|
383
|
- Un comando en MATLAB es una palabra de código que no devuelve salidas de
forma explícita, pero que puede aceptar modificadores, o argumentos de
entrada.
- La sintaxis general de un comando es la siguiente:
- nombre_comando modificador1 modificador2 ...
- Ejemplos de comandos son help, load y type.
|
|
384
|
- Por otro lado, una función puede devolver argumentos de salida, y sus
argumentos de entrada se escriben entre paréntesis (como se vio
anteriormente).
- La dualidad consiste en que todo comando puede utilizarse como función,
y viceversa.
|
|
385
|
- Para utilizar un comando como función, simplemente se escriben sus
argumentos entre comillas simples (porque son cadenas). Por ejemplo, el
comando help sum puede escribirse como función así: help( 'sum' ).
- Para escribir una función como comando, se debe tener en cuenta que los
argumentos de los comandos son todos cadenas de caracteres.
|
|
386
|
- Ejecuta una cadena como si se hubiera digitado en la línea de comandos.
- Por ejemplo, eval('help sum') evalúa la sentencia help sum.
- Si es necesario colocar el carácter de la comilla simple dentro de una
cadena de caracteres, se utiliza una comilla simple dos veces, así:
|
|
387
|
- La evaluación de cadenas puede ser útil para la ejecución de sentencias
repetitivas, en donde sólo cambian algunos valores.
|
|
388
|
- Escriba una función que tome como argumento un vector, y que devuelva
una estructura, conteniendo en cada campo cada elemento del vector.
Colóquele a los campos nombres de la forma a1, a2, etc. Utilice la
función num2str para convertir números en cadenas.
|
|
389
|
|
|
390
|
- Escriba una función que devuelva una cadena que indique con cuántos
argumentos de entrada se invocó dicha función. La cantidad máxima de
argumentos de entrada será 3.
|
|
391
|
|
|
392
|
- Escriba una función que acepte tres números como argumentos de entrada,
y que devuelva lo siguiente:
- Si la función se invoca con un argumento de salida, se devuelve la suma
de los números.
- Si se invoca con dos argumentos de salida, se devuelve la suma y el
producto de los números.
- Si se invoca con tres argumentos de salida, se devuelve la suma, el
producto, y el promedio de los números.
|
|
393
|
- Lección 13
- Manejador de gráficos
|
|
394
|
|
|
395
|
- Definición
- Objetos gráficos
- Manejadores de objetos
- Funciones para la creación de objetos
- Propiedades de los objetos
- Funciones set y get
- Interfaces gráficas de usuario
|
|
396
|
- El manejador de gráficos (Handle Graphics ®) es el sistema de MATLAB que
provee un conjunto de funciones de bajo nivel que permiten la creación y
manipulación de líneas, superficies y otros objetos gráficos.
|
|
397
|
- Los objetos gráficos constituyen el componente fundamental de dibujo del
sistema de manejador de gráficos de MATLAB.
- Los objetos están organizados en una estructura jerárquica de árbol.
- Por lo tanto, se tienen objetos padres (parents) y objetos hijos (children).
|
|
398
|
- Existen once tipos de objetos del manejador de gráficos de MATLAB:
- Root.
- Figure.
- Uicontrol.
- Axes.
- Uimenu.
- Image.
- Line.
- Patch.
- Surface.
- Text.
- Light.
|
|
399
|
- El objeto root (raíz) se encuentra en la cúspide de la jerarquía.
- Lo constituye la pantalla de la computadora (la ventana de comandos de
MATLAB).
- Se crea automáticamente al iniciar una sesión de MATLAB.
|
|
400
|
- Son cualquier ventana producida por MATLAB diferente de la ventana de
comandos.
|
|
401
|
- uicontrol = user interface control (control de interfaz de usuario).
- Son controles de interfaces de usuario que ejecutan una función cuando
el usuario los activa.
- Ejemplos de estos controles son los botones (pushbuttons), botones de
radio (radio buttons) y barras de desplazamiento (sliders).
|
|
402
|
- Son la región de una ventana de figuras en donde se colocan los
gráficos.
|
|
403
|
- uimenu = user interface menu (menú de interfaz de usuario).
- Son menús de interfaces de usuario que se encuentran en la parte
superior de las ventanas de figuras.
|
|
404
|
- Son objetos bidimensionales que MATLAB despliega en pantalla conteniendo
imágenes, utilizando los elementos de un arreglo rectangular como
índices de un mapa de color.
|
|
405
|
- Son los componentes fundamentales de la mayoría de gráficos
bidimensionales.
|
|
406
|
- Son polígonos formados por líneas (los bordes) y colores (el relleno).
|
|
407
|
- Son representaciones tridimensionales de los datos de una matriz creados
al graficar los elementos de la misma como alturas medidas desde el
plano x-y.
|
|
408
|
- Son cadenas de caracteres.
|
|
409
|
- Definen fuentes de iluminación que afectan todos los objetos dentro de
un objeto axes.
|
|
410
|
- Conocidos como object handles.
- Es un identificador único asignado a cada objeto de un gráfico.
- MATLAB asigna este identificador cuando se crea el objeto.
- El handle del objeto root siempre es cero.
- El handle de un objeto figure es un entero que se muestra en el título
de la ventana de figuras.
|
|
411
|
- Los handles de los otros objetos gráficos son números de punto flotante
que contienen información usada por MATLAB.
- Por ejemplo, con la sentencia:
- se crea un gráfico de cuatro líneas, una por cada columna de la matriz
mágica. Además, se devuelve el vector de handles h, que contiene un
handle para cada línea del gráfico.
|
|
412
|
- MATLAB cuenta con algunas funciones que obtienen el handle de algunos
objetos comúnmente usados:
- gcf: get current figure (obtener la figura actual), devuelve el handle
de la ventana de figuras activa.
- gca: get current axes (obtener los ejes actuales), devuelve el handle
del objeto axes activo.
- gco: get current object (obtener el objeto actual), devuelve el handle
del objeto gráfico activo.
|
|
413
|
- Estas funciones se pueden usar como argumentos de otras funciones que
requieren handles de figuras y ejes.
- El handle de otros objetos se debe obtener al momento de la creación de
los mismos.
- Todas las funciones de MATLAB que crean objetos devuelven el handle (o
vector de handles) del objeto creado.
|
|
414
|
- Para eliminar un objeto se utiliza la función delete.
- Al borrar un objeto se borran también todos sus objetos hijos.
|
|
415
|
- Existe una función para crear cada uno de los objetos gráficos
existentes.
- El nombre de la función es idéntico al nombre del objeto.
- Por ejemplo, la función figure crea un objeto gráfico tipo figure.
|
|
416
|
- Todos los objetos poseen propiedades que controlan su funcionamiento y
apariencia.
- Existen dos formas de asignar los valores de las propiedades de un
objeto:
- Con la función de creación del objeto.
- Utilizando la función set, una vez que el objeto se ha creado.
|
|
417
|
- Por ejemplo, las siguientes sentencias crean tres objetos, y
sobrescriben los valores por defecto de algunas de sus propiedades.
|
|
418
|
- Sirven para hacer referencia a las propiedades de un objeto, una vez
haya sido creado.
- Para esto se utiliza el handle del objeto en cuestión.
- La función set sirve para asignarles valores a las propiedades de los
objetos. Su sintaxis es la siguiente:
- set( h , 'Propiedad_1' , valor_1 , 'Propiedad_2' , valor_2 … )
|
|
419
|
- h es el handle del objeto, y 'Propiedad_n', valor_n son parejas de
nombres de propiedades (cadenas de caracteres) y valores.
- Por ejemplo, para cambiar el color y el ancho de la línea del gráfico
del ejemplo anterior:
- set( h , 'Color' , [ 0 , 0.8 , 0.8 ] , 'LineWidth' , 3 )
|
|
420
|
- Para ver un listado de todas las propiedades asignables de un objeto, se
utiliza la función set con sólo un argumento (el handle del objeto). Por
ejemplo, set( h ).
- Para ver un listado de todos los valores actuales de las propiedades de
un objeto, se utiliza la función get, de la misma manera. Por ejemplo, get(
h ).
|
|
421
|
- Para obtener el valor de una propiedad específica, se utiliza get de la
siguiente manera:
|
|
422
|
- Son las ventanas con las que el usuario puede interactuar con un
programa.
- Pueden crearse de dos formas:
- Utilizando las funciones de bajo nivel, como uicontrol.
- Utilizando el editor de interfaces gráficas de usuario (graphical user
interface editor, o GUIDE).
|
|
423
|
- A continuación se muestra un ejemplo de construcción de GUI's con
funciones de bajo nivel:
|
|
424
|
- Las sentencias anteriores crean un botón en el centro de una ventana de
figuras, que tiene como texto la cadena 'Haga click aquí'.
- Por el momento, al presionar el botón no ocurre nada. Sin embargo, la
sentencia:
- s = 'set(b,''Position'',[.8*rand .9*rand .2 .1])';
|
|
425
|
- La sentencia anterior crea una cadena que contiene un comando que
modifica la posición del botón. Al evaluar la cadena con la función eval,
el botón se mueve a una posición aleatoria.
|
|
426
|
- Para asignar esa cadena de comandos al evento que ocurre al presionar el
botón, se utiliza la siguiente sentencia:
- Por lo tanto, cada vez que se presiona el botón, su posición cambia de
manera aleatoria.
|
|
427
|
- Cree un guión que coloque un botón en la esquina inferior izquierda de
la ventana de figuras activa, con el texto "Borrar gráfica",
para borrar la ventana de figuras al presionarlo. Utilice el comando cla
(clear axes) para borrar la gráfica.
|
|
428
|
|