Guardar y importar datos en Octave
En esta lección de Octave, explicaré cómo guardar y cargar datos usando archivos en Octave.
¿Por qué es importante guardar datos? Guardar datos significa almacenar los datos que se encuentran en la RAM de la computadora en un archivo en el disco duro u otro dispositivo de almacenamiento (por ejemplo, una unidad USB). Los datos en la RAM de la computadora son volátiles, lo que significa que se perderán cuando se apague la computadora o se cierre Octave. En cambio, los datos guardados en un archivo son permanentes y se pueden cargar de nuevo en la RAM cuando se enciende la PC, sin tener que volver a escribirlos cada vez.
Cómo guardar datos
Permíteme darte un ejemplo práctico.
Crea tres matrices llamadas M1, M2, M3
>> M1=[1 2 3; 4 5 6];
>> M2=[7 8 ; 9 1];
>> M3 = [ 3 4; 5 6; 8 9];
Ahora hay tres matrices en la memoria.
Para guardar todos los datos en la memoria, utiliza el comando save seguido del nombre del archivo:
>> save nombrefichero.mat
Luego, borra todos los datos de la memoria con el comando clear
>> clear
Todos los datos se han eliminado de la memoria.
Si intentas llamar a la matriz M1, Octave devolverá un error:
>> M1
error: 'M1' undefined near line 1 column 1
Para cargar los datos del archivo de nuevo en la memoria, utiliza el comando load seguido del nombre del archivo
>> load nombrefichero.mat
Ahora los datos están de vuelta en la memoria.
Si intentas llamar a la matriz M1, podrás ver su contenido:
>> M1
M1 =
1 2 3
4 5 6
Nota. En este ejemplo, te mostré cómo guardar matrices, pero la función de guardado funciona con todos los objetos y estructuras de datos (variables, gráficos, matrices, etc.). Los procedimientos de guardado y carga siempre son los mismos.
Cómo guardar solo objetos específicos
Octave también te permite guardar selectivamente. En este caso, debes especificar qué objetos deseas guardar en el archivo.
Por ejemplo, para guardar solo la matriz M1, escribe:
>> save nombrefichero2.mat M1
Para guardar las matrices M1 y M2, simplemente escribe:
>> save nombrefichero3.mat M1 M2
Alternativamente, también puedes utilizar esta sintaxis para guardar los datos.
>> save("nombrefichero3.mat", "M1", "M2")
Note. Si deseas agregar objetos adicionales al archivo de guardado, indícalos insertando un parámetro adicional después del nombre del archivo. Por ejemplo, para guardar tres objetos, escribe save nombrefichero3.mat M1 M2 M3 o save("nombrefichero3.mat", "M1", "M2", "M3").
Para guardar todos los objetos que comienzan con la letra M, utiliza el carácter especial *
>> save nombrefichero3.mat M*
De cualquier manera, la carga de los datos en la memoria siempre se realiza de la misma manera.
Para cargar los datos en la memoria, debes utilizar el comando load.
load nombrefichero2.mat
Cómo cargar un único objeto
Si has almacenado varios objetos en un archivo, puedes optar por la carga selectiva para cargar solo los objetos requeridos y evitar cargar innecesarios.
Para hacerlo, debes especificar los objetos específicos que deseas cargar en la memoria.
¿Por qué usar la carga selectiva? La carga selectiva es extremadamente útil al trabajar con grandes cantidades de datos. Si un archivo contiene muchos objetos, cargarlos en la memoria puede resultar en un desperdicio innecesario de espacio de memoria, tiempos de procesamiento lentos e incluso causar errores de desbordamiento de memoria. En general, es una buena práctica cargar en la memoria solo los datos necesarios para el procesamiento.
Por ejemplo, en el archivo llamado "nombrearchivo.mat", ya has guardado las matrices M1, M2 y M3.
Para cargar solo la matriz M1 en la memoria, escribe:
>> load nombrearchivo.mat M1
De esta manera, cargarás la matriz M1 en la memoria, pero no las matrices M2 y M3 que también están presentes en el archivo.
Para cargar las matrices M1 y M2 en la memoria, escribe:
>> load nombrearchivo.mat M1 M2
Este comando carga las matrices M1 y M2 en la memoria pero no la matriz M3.
Alternativamente, también puedes usar esta sintaxis de carga selectiva:
>> load("nombrearchivo.mat","M1","M2")
Nota. Para cargar tres o más objetos en la memoria, agrega los otros objetos como parámetros adicionales del comando load. Por ejemplo, load nombrearchivo.mat M1 M2 M3
Para cargar todos los objetos que comienzan con M, escribe:
>> load nombrearchivo.mat M*
Cómo guardar archivos de datos en formato binario
Octave también te permite guardar datos en formato binario.
En este caso, debes agregar la opción -binary al comando save.
>> save -binary nombrearchivo4.mat
Para cargar los datos en la memoria, puedes usar el mismo método que antes.
>> load nombrearchivo4.mat
Opciones adicionales de guardado
El comando save tiene otras opciones muy útiles:
- -append
agrega datos a un archivo existente sin borrar ningún dato preexistente - -zip
comprime los datos (útil para grandes cantidades de datos) - -ascii
guarda los datos en formato de texto - -binary
guarda los datos en formato binario - -hdf5
guarda los datos en formato HDF5
Si necesitas incluir múltiples opciones en el comando 'save', usa esta sintaxis general:
>> save ("-option1", ..., "archivo", "v1", ...)
Para ver todas las opciones disponibles para el comando 'save', usa la ayuda de Octave:
>> help save
Ahora tienes toda la información necesaria para guardar y cargar datos en Octave.