Índice
1. Introducción
2. Palabras Clave
3. Generalidades
4. Historia
5. Matrices Todo el Tiempo
6. Cadenas de Caracteres
7. Estructuras de Datos
8. Arreglos
9. Arreglos Lógicos
10. Ámbitos de Variables
11. Operadores y Palabras Clave
12. Conclusiones
13. Literatura & Enlaces
1. Introducción
En lugar de una receta, esta primer documento pretende esbozar las generalidades de los temas que se practicarán a lo largo de la serie de recetas Codificación. Aquí el lector ganará una vista general y podrá notar la forma de trabajo de esta técnica basada en recetas.
Se aprovecha este documento para exponer las generalidades del lenguaje de programación incorporado en MATLAB para manipular símbolos.
2. Palabras Clave
- Arreglo
- Codificación
- Java
- MATLAB
- Operador
- Receta
3. Generalidades
El lector se familiarizará con los siguientes aspectos esenciales de MATLAB:
- Sintaxis
- Programación
- Características principales
- Espacio de trabajo
De vital importancia será conocer la evolución que ha evidenciado MATLAB en los últimos años. Ya no se considera un paquete para hacer manipulación tipos de datos basados en matrices. Ahora se pueden mencionar características como:
- Tipos de datos enteros, punto flotante
- Estructuras de datos
- Programación orientada a objetos
- Integración con el lenguaje de programación Java, Python y C++
- Clases
En la versión más reciente, R2017b (Introducción a Recetas MATLAB), se evidencia una entorno de trabajo basado en cintas (ribbon), y claramente sofisticado:
|
Figura 1. Ventana principal de MATLAB. |
Este entorno posee completas capacidades para soportar el trabajo de un desarrollador o programador:
- Editor inteligente para código fuente
- Analizador de código
- Depurador
- Log de actividades
- Historial de comandos introducidos
4. Historia
MATLAB fue creado por un profesor alrededor del año 1970. El primer objetivo era ofrecer capacidades de manipulación sobre matrices. Su nombre procede MATrix LABoratory. Su evolución le ha llevado incluir un conjunto de librerías bajo el nombre LAPACK (Linear Algebra Package).
5. Matrices todo el Tiempo
El tipo de dato por defecto es la matriz de doble precisón. Por lo tanto, el programador no requiere especificar el tipo de dato a la hora de declarar el nombre de una variable.
Este ejemplo crea una matriz cuadrada de 3 x 3:
a = [7 3 4; 9 5 1; 7 8 6];
Cada fila de la matriz está separada por un punto y coma (;).
Para acceder a un elemento específico de la matriz basta con escribir:
a(2, 2);
Con este comando se obtiene el valor 5.
Las operaciones matriciales comunes como potencia de una matriz, matriz transpuesta, o suma o producto de matrices se puede computar asi:
b = a' * a;
c = a ^ 2;
d = b + c;
6. Cadenas de Caracteres
Definir una cadena de caracteres es supremamente sencillo:
nombre = 'Fyodor';
apellido = 'Dostoevsky';
nombreCompleto = [nombre apellido];
Nótese que la concatenación de cadenas de caracteres es muy fácil: en el último comando se especifica entre paréntisis angulares, y separados por espacio, las variables o literales que se quieren concatenar.
En la Tabla 1 (Paluszek et Thomas, 2015) se definen algunas funciones interesantes para tratar valores de este tipo de dato:
|
Tabla 1. Funciones de cadenas de caracteres (Paluszek et Thomas, 2015). |
7. Estructuras de Datos
Para definir una estructura de datos se recomienda usar una función donde se definan los campos y, eventualmente, valores de inicialización o por defecto:
e = Estructura;
e(2) = Estructura;
function e = Estructura
e = struct ;
e.campo1 = 32.0;
e.campo2 = 'Dostoevsky';
end
En este fragmento de código se define una estructura que contiene dos campos. Esta forma de encapsular o relacionar datos es lo que permite referirse a una entidad de forma únivoca y ordenada.
8. Arreglos
Los arreglos en MATLAB son la estructura de datos por excelencia para contener cualquier tipo de dato. Se pueden formar vectores, matrices bidimensionales o multidimensionales.
La forma de declarar un arreglo se logra a través de
numeroPrimos = [2 3 5 7 11];
numerosPares = [2 4 6; 8 10 12; 14 16 18];
La primera expresión crea un arreglo unidimensional, mientras que la segunda una matriz de 3x3.
Para acceder a un elemento basta con usar
numerosPrimos(4)
9. Arreglos lógicos
Una arreglo lógico en MATLAB está únicamente compuesto por ceros y unos. Para inicializarlos se puede especificar un valor lógico: verdadero => 1, false => 0. Y existen funciones para determinar si un arreglo es lógico:
isLogical(arregloLogico);
10. Ámbitos de Variables
Las variables declaradas dentro de una función tienen ámbito o contexto local; mientras que aquellas declaradas por fuera de cualquier función, o en un script tienen ámbito global.
11. Operadores y Palabras Clave
MATLAB cuenta con una variedad de operadores y palabras claves para la manipulación de datos y estructuras de datos. Entre ellas tenemos:
11.1 Coma
La coma (,) se utiliza para la creación de una lista de índices. Ejemplo de uso:
arreglo(1, 1:2);
arreglo(:, 1)
La primera expresión retorna una lista, mientras que la segunda obtiene todos los elementos de una dimensión. Nótese que arreglo(1, 1:2) la coma está entre dos enteros: esta es la forma de crear una lista en MATLAB.
11.2 La crema
El operador ~ (o crema) es usado para negar valores lógicos. Supóngase que se tiene la siguiente matriz:
matriz = [0 1; 0 1]
Al aplicar la negación sobre esta matriz
~matriz
se obtiene
[1 0; 1 0]
11.3 Punto
El operador punto tiene un significado particular en MATLAB: .*, .\, ^..
Por ejemplo, para multiplicar los elementos de dos dos matrices es común recurrir a un ciclo for, pero a través del operador .* se puede lograr la multiplicación de uno a uno los elementos integrales de la matriz:
y = a .* b;
Esta expresión es más óptima que esta otra:
for k = 1:10
y(k) = a(k) * b(k);
end
Existen otros operadores relevantes, aquí sólo se mencionan unos pocos, pero a medida que avancemos reconoceremos otra variedad interesante. Seguro que la exploración a través de recetas nos facilitará explotar los recursos computacionales que provee este magnífico lenguaje computacional e ir más allá.
12. Conclusiones
Esta receta introductoria nos abre camino a explorar el magnífico mundo de MATLAB: un lenguaje computacional usado en la academia y en la industria.
La siguientes entregas consistirán en el uso de elementos comunes y esenciales para el dominio de este lenguaje. ¡Así que preparados!
13. Literatura & Enlaces
Paluszek, M., Thomas, S. (2015). MATLAB Recipes: A Problem-Solution Approach. United States: Apress.
Introducción a Recetas MATLAB (2017). Recuperado desde: https://ortizol.blogspot.com.co/2017/11/introduccion-a-recetas-matlab.html
O