Matlab (abreviatura de MATrix LABoratory, “laboratorio de matrices”) es uno de los paquetes más populares para realizar análisis numérico.
Ofrece un entorno de desarrollo integrado (IDE) con un lenguaje de programación propio (lenguaje M).
El lenguaje M es un lenguaje de alto nivel (high level): – Simple de aprender y usar. – El costo está en los tiempos de ejecución.
Un lenguaje de programación de alto nivel se caracteriza por expresar el algoritmo de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad ejecutora de las máquinas.
Un lenguaje de programación de bajo nivel es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de las computadoras que lo soportan.
El uso de la palabra bajo nivel no implica que el lenguaje sea menos potente que un lenguaje de alto nivel, sino que se refiere a la reducida abstracción entre el lenguaje y el hardware.
Interfaz gráfica del usuario versión R2020a.
Matlab almacena todo en la memoria RAM del computador. Para liberar la memoria se usan los siguientes comandos:
Matlab usa el espacio de directorio como área de trabajo. Dicho directorio se denomina de trabajo y todos los archivos (que no formen parte del paquete) deben estar en dicho directorio.
Existen ocasiones en que se puede tener algún procedimiento que se use regularmente. Para usarlo en cada proyecto se tendría que copiar en cada carpeta de trabajo. No parece eficiente ya que se están duplicando archivos. Un mejor enfoque es llamar el directorio de procedimientos cada vez que los necesitemos.
Matlab es un lenguaje basado en expresiones.
Las expresiones que se introducen mediante el teclado son interpretadas y evaluadas.
Cada expresión genera algún tipo de output que puede ser asignado en una variable. La asignación se realiza de la siguiente forma:
Nombrevariable=expresión
Si se introduce alguna expresión, pero no se define un nombre para la variable, Matlab asigna la expresión a una variable auxiliar temporal denominada ans.
Todas las variables son almacenadas en la memoria RAM del computador por lo que se pierden cuanto uno sale y apaga Matlab.
Para la limpieza de la memoria se emplea el comando:
clear nombrevariable1 nombrevariable2…..
Reglas al elegir los nombres de las variables:
Tipos básicos de variables:
Ejercicio 9.2.1. Al ejecutar el comando en el editor crea un espacio llamado a en la memoria, en el que se aguarda el valor 25. Se ha creado una variable a, cuyo valor inicial es 25 (ilustración 117).
Al ejecutar el programa en la ventana de comandos nos aparecerá el valor de la variable guardada como se muestra en la ilustración 118.
Cambiando el valor de a del anterior 25 al nuevo valor 45 (ilustración 119), las variables pueden ser distintos tipos (numéricas, de texto, lógicas, de fecha, …). Asimismo, el contenido de una variable puede ser un único valor como en este ejemplo, o puede ser un vector, una matriz, o una estructura más compleja.
Al ejecutar la nueva instrucción la variable en la ventana de comandos cambia (ilustración 120).
Ejercicio 9.2.2. Asignación de variables numéricas: (código en la ilustración 121, resultado en la lustración 122).
Ejercicio 9.2.3. Asignación de variables de tipo texto (código en la ilustración 123, resultado en la lustración 124).
Ejercicio 9.2.4. Estructuras de variables (código en la ilustración 125, resultado en la lustración 126).
Se pueden crear estructuras con las variables que se tienen almacenadas. Las estructuras se crean definiendo un nombre para la estructura seguido de un punto y a continuación el nombre de la celda: NombreEstrutura.NombreCelda = expresion:
Ejercicio 9.2.5. Variables vacías (código en la ilustración 127, resultado en la lustración 128).
Adicionalmente se puede crear una variable vacía. El objetivo es reservar espacio en la memoria.
Ejercicio 9.2.6. “who y whos” (código en la ilustración 129, resultado en la lustración 130 y código en la ilustración 131 y resultado en la ilustración 132 para los comandos who y whos respectivamente).
Los comandos who y whos se utilizan para saber que objetos se han creado, el primer comando muestra nombres de todas las variables, mientras que el segundo además da información detallada del tipo y el tamaño.
Las variables pueden ser locales o globales. Las variables serán locales si su valor queda en memoria solo para la sesión o procedimiento con que se esté trabajando. En caso de las variables globales como se muestra en la ilustración 133, su valor se mantiene para otras sesiones o procedimientos.
Por definición todas las variables que están dentro de una función son locales.
Para declarar una variable como global se usa:
global NombreVariable1 NombreVAriable2 …
En la ilustración 134 se emplea el comando whos revisado anteriormente con la finalidad las nuevas variables globales declaradas.
Para mostrar el valor de las variables en pantalla se usa disp() (ilustración 135). Y para imprimirlos en pantalla con un formato determinado se usa fprintf().
El comando disp() muestra en pantalla el valor asignado a una variable (numérica o texto) como se muestra en la ilustración 136.
Ejercicio 9.3.1. diferentes maneras de usar el comando disp().
Se pueden declarar variables que directamente de mostraran con el comando disp (ilustración 137). Posteriormente serán desplegadas en la ventana de comandos (ilustración 138).
El comando fprintf se usa también para mostrar en pantalla información sobre el valor asignado a determinadas variables, con la diferencia que éste comando permite dar formato a la visualización e introducir la misma dentro un texto determinado.
La asignación dentro del texto se inicia con % (este símbolo también es utilizado para comentarios en el código)
Dentro un texto se necesitan introducir tantos signos % como valores de variables se requieran mostrar seguidos por un carácter que representa el tipo de valor que se quiere visualizar:
Algunas otras opciones de formato son:
Ejercicio 9.3.2. Utilización de algunos comandos con disp. (código en la ilustración 139 y resultado en el comando 140).
Ejercicio 9.3.3. Comando fprintf para decimales (código en la ilustración 141 y resultado en el comando 142).
Mientras este en ejecución el Matlab, todo el espacio de trabajo se encuentra guardado en la memoria RAM del computador, por lo que al cerrar el programa toda esa memoria es liberada y la información eliminada.
Matlab puede guardar el espacio de trabajo
El formato nativo de Matlab es .mat
Todos los archivos serán guardados en el directorio de trabajo.
En las ilustraciones 144 y 145 se solicita el archivo donde se almacenaron las matrices desplegando la información en la ventana de comandos.
Matlab también puede almacenar la información como archivos de texto (.txt).
Como alternativa se puede usar:
A modelo de ejemplo vamos a crear una matriz de tamaño 100 x 5 con números aleatorios extraídos de una distribución normal con media 100 y varianza 25 y los guardaremos en formato .txt (Ilustración 146).
Una vez ejecutado el código se almacena el archivo generado en el directorio de trabajo de Matlab, el resultado de la matriz generada con datos aleatorios y guardado en un archivo .txt se aprecia en la ilustración 147.
Matlab puede guardar y leer datos desde Excel.
Al importar datos de Excel es también posible definir la hoja y el rango específicos de los cuales los datos serán importados.
Ejercicio 9.4.1. Importar información de los daros reales PIB de México (código en la ilustración 148 y resultado en la ilustración 149).