Main Content

save

Guardar variables del área de trabajo en un archivo

Descripción

ejemplo

save(filename) guarda todas las variables del área de trabajo actual en un archivo binario con formato MATLAB® (archivo MAT) llamado filename. Si filename ya existe, save sobrescribe el archivo.

ejemplo

save(filename,variables) guarda solo las variables o campos de un arreglo de estructuras especificados por variables.

ejemplo

save(filename,variables,fmt) guarda las variables en el formato de archivo especificado por fmt. El argumento variables es opcional. Si no se especifica variables, la función save guarda todas las variables en el área de trabajo.

ejemplo

save(filename,variables,version) guarda las variables en la versión de archivo MAT especificada por version. El argumento variables es opcional.

ejemplo

save(filename,variables,version,'-nocompression') guarda las variables en el archivo MAT sin comprimir. El indicador '-nocompression' solo admite la versión 7 de los archivos MAT (predeterminado) y la versión 7.3. Por lo tanto, debe especificar version como '-v7' o '-v7.3'. El argumento variables es opcional.

ejemplo

save(filename,variables,'-append') añade nuevas variables a un archivo existente. Si ya existe una variable en un archivo MAT, save la sobrescribe con el valor del área de trabajo.

Para los archivos ASCII, '-append' añade datos al final del archivo.

Para añadir datos a un archivo MAT de la versión 6, debe incluir también '-v6' como argumento de entrada.

ejemplo

save(filename,variables,'-append','-nocompression') añade nuevas variables a un archivo existente sin comprimir. El archivo existente debe ser un archivo MAT, versión 7 (predeterminado) o 7.3.

ejemplo

save filename es el formato de comando de la sintaxis. El formato de comando requiere menos caracteres especiales. No es necesario escribir paréntesis ni encerrar el valor de entrada entre comillas simples o dobles. Separe los valores de entrada con espacios en lugar de comas.

Por ejemplo, para guardar un archivo llamado test.mat, estas instrucciones son equivalentes:

save test.mat      % command form
save('test.mat')   % function form

Puede incluir cualquiera de los valores de entrada descritos en las sintaxis anteriores. Por ejemplo, para guardar la variable llamada X:

save test.mat X       % command form
save('test.mat','X')  % function form

No utilice el formato de comando cuando alguno de los valores de entrada, como filename, sean variables o cadenas.

Ejemplos

contraer todo

Guarde todas las variables del área de trabajo actual en un archivo MAT binario, test.mat. Si filename es una variable, utilice la sintaxis de función.

filename = 'test.mat';
save(filename)

De lo contrario, también puede utilizar la sintaxis de comando.

save test.mat

Elimine las variables del área de trabajo y luego recupere los datos con la función load.

clear
load('test.mat')

Cree y guarde dos variables, p y q, en un archivo llamado pqfile.mat.

p = rand(1,10);
q = ones(10);
save('pqfile.mat','p','q')

MATLAB® guarda las variables en el archivo, pqfile.mat, en la carpeta actual.

También puede utilizar la sintaxis de comando para guardar las variables, p y q.

save pqfile.mat p q

Cree dos variables, guárdelas en un archivo ASCII y, a continuación, visualice el contenido del archivo.

p = rand(1,10);
q = ones(10);
save('pqfile.txt','p','q','-ascii')
type('pqfile.txt')

La función type muestra el contenido del archivo.

De forma alternativa, utilice la sintaxis de comando para la operación save.

save pqfile.txt p q -ascii

Cree una estructura, s1, que contenga tres campos, a, b y c.

s1.a = 12.7;
s1.b = {'abc',[4 5; 6 7]};
s1.c = 'Hello!';

Guarde los campos de la estructura s1 como variables individuales en un archivo llamado newstruct.mat.

save('newstruct.mat','-struct','s1');

Compruebe el contenido del archivo mediante la función whos.

disp('Contents of newstruct.mat:')
Contents of newstruct.mat:
whos('-file','newstruct.mat')
  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              
  b         1x2               246  cell                
  c         1x6                12  char                

Cree dos variables y guárdelas en un archivo MAT de la versión 7.3 llamado example.mat.

A = rand(5);
B = magic(10);
save('example.mat','A','B','-v7.3')

También puede utilizar la sintaxis de comando para la operación save.

save example.mat A B -v7.3

Cree dos variables y guárdelas, sin comprimir, en un archivo MAT de la versión 7 o 7.3 llamado myFile.mat.

A = rand(5);
B = magic(10);
save('myFile.mat','A','B','-v7.3','-nocompression')

De forma alternativa, utilice la sintaxis de comando para la operación save.

save myFile.mat A B -v7.3 -nocompression

El indicador '-nocompression' facilita un guardado más rápido para variables de tamaño superior a 2 GB o sin comprimir.

Guarde dos variables en un archivo MAT. A continuación, añada una tercera variable al mismo archivo.

p = rand(1,10);
q = ones(10);
save('test.mat','p','q')

Visualice el contenido del archivo MAT.

whos('-file','test.mat')
  Name       Size            Bytes  Class     Attributes

  p          1x10               80  double              
  q         10x10              800  double              

Cree una nueva variable, a, y añádala al archivo MAT.

a = 50;
save('test.mat','a','-append')

Visualice el contenido del archivo MAT.

whos('-file','test.mat')
  Name       Size            Bytes  Class     Attributes

  a          1x1                 8  double              
  p          1x10               80  double              
  q         10x10              800  double              

La variable, a, se añade a test.mat, sin sobrescribir las variables anteriores, p y q.

Nota

Para añadir una variable a un archivo MAT de la versión 6, especifique '-v6' y '-append'. Por ejemplo, para guardar la variable a en el archivo test.mat, llame a la función:

save('test.mat','a','-v6','-append')

Guarde dos variables en un archivo MAT. A continuación, añada una tercera variable, sin comprimir, al mismo archivo.

Cree dos variables, A y B, y guárdelas en un archivo MAT de la versión 7 o 7.3. De forma predeterminada, la función save comprime las variables A y B antes de guardarlas en myFile.mat.

A = rand(5);
B = magic(10);
save('myFile.mat','A','B','-v7.3')

Visualice el contenido del archivo MAT.

whos('-file','myFile.mat')
  Name       Size            Bytes  Class     Attributes

  A          5x5               200  double              
  B         10x10              800  double              

Cree una nueva variable, C, y añádala, sin comprimir, al archivo myFile.mat.

C = 5;
save('myFile.mat','C','-append','-nocompression')

Visualice el contenido del archivo MAT.

whos('-file','myFile.mat')
  Name       Size            Bytes  Class     Attributes

  A          5x5               200  double              
  B         10x10              800  double              
  C          1x1                 8  double              

Argumentos de entrada

contraer todo

Nombre del archivo, especificado como vector de caracteres o escalar de cadena. Si no se especifica filename, la función save guarda las variables en un archivo llamado matlab.mat.

Si filename no tiene ninguna extensión (es decir, no cuenta con un punto seguido de texto), y no se especifica el valor de format, MATLAB añade .mat. Si filename no incluye una ruta completa, MATLAB guarda las variables en la carpeta actual. Debe tener permiso para escribir en el archivo.

Cuando se utiliza el formato de comando de save, no es necesario encerrar el valor de entrada entre comillas simples. No obstante, si filename contiene un espacio, debe encerrar el argumento entre comillas simples. Por ejemplo, save 'filename withspace.mat'.

Nota

No utilice el formato de comando cuando filename sea una cadena.

Para guardar las variables del área de trabajo en un archivo MAT en una ubicación remota, especifique filename como un localizador uniforme de recursos (URL) de la forma:

scheme_name://path_to_file/my_file.mat

Según la ubicación remota, scheme_name puede ser uno de los valores de esta tabla.

Ubicación remotascheme_name
Amazon S3™s3
Windows Azure® Blob Storagewasb, wasbs

La función save solo admite guardar archivos MAT de la versión 7.3 en ubicaciones remotas.

Para obtener más información sobre cómo configurar MATLAB para acceder al servicio de almacenamiento de archivos online, consulte Trabajar con datos remotos.

Ejemplo: 'myFile.mat'

Ejemplo: 's3://bucketname/path_to_file/my_file.mat'

Nombres de las variables que se desea guardar, especificados como vectores de caracteres o escalares de cadena. Cuando se utiliza el formato de comando de save, no es necesario encerrar el valor de entrada entre comillas simples.

Nota

No utilice el formato de comando cuando variables sea una cadena.

variables puede expresarse en uno de los siguientes formatos.

Formato de los valores de entrada de variablesVariables que se guardan
var1,...,varNGuarda las variables de la lista, especificadas como vectores de caracteres individuales o cadenas.
Utilice el carácter comodín '*' para que los patrones coincidan. Por ejemplo, save('filename.mat','A*') guarda todas las variables en el archivo que comienza por A.
'-regexp',expr1,...,exprNGuarda solo las variables cuyos nombres coinciden con las expresiones regulares, especificadas como vectores de caracteres o cadenas. Por ejemplo, save('filename.mat','-regexp','^Mon','^Tues') guarda solo las variables del archivo cuyo nombre comienza por Mon o Tues.
'-struct',structName Almacena los campos de la estructura escalar especificada por structName como variables individuales en el archivo. Por ejemplo, save('filename.mat','-struct','S') guarda la estructura escalar S.
'-struct',structName,field1,...,fieldNAlmacena los campos especificados de la estructura escalar especificada como variables individuales en el archivo. Por ejemplo, save('filename.mat','-struct','S','a','b') guarda los archivos S.a y S.b.
'-struct',structName,'-regexp',expr1,...,exprNAlmacena solo los campos cuyos nombres coinciden con las expresiones regulares, especificados como vectores de caracteres o cadenas.

Formato de archivo, especificado como una de las siguientes opciones. Cuando se utiliza el formato de comando de save, no es necesario encerrar el valor de entrada entre comillas simples o dobles. Por ejemplo, save myFile.txt -ascii -tabs.

Valor de fmtFormato de archivo
'-mat'

Formato de archivo MAT binario.

'-ascii'

Formato de texto con 8 dígitos de precisión.

'-ascii','-tabs'

Formato de texto delimitado por tabulaciones con 8 dígitos de precisión.

'-ascii','-double'

Formato de texto con 16 dígitos de precisión.

'-ascii','-double','-tabs'

Formato de texto delimitado por tabulaciones con 16 dígitos de precisión.

Para los archivos MAT, los datos guardados en un equipo y cargados en otro conservarán la precisión y el rango que permitan los diferentes formatos de punto flotante de los equipos.

Utilice uno de los formatos de texto para guardar valores numéricos de MATLAB a archivos de texto. En este caso:

  • Cada variable debe ser un arreglo double de dos dimensiones.

  • El valor de salida incluye solo el componente real de números complejos.

  • MATLAB escribe los datos de cada variable secuencialmente en el archivo. Si piensa utilizar la función load para leer el archivo, todas las variables deben tener el mismo número de columnas. La función load crea una única variable a partir del archivo.

Si se especifica un formato de texto y alguna variable es un arreglo de caracteres bidimensional, MATLAB traduce los caracteres a sus correspondientes códigos ASCII internos. Por ejemplo, 'abc' aparecerá en un archivo de texto como:

  9.7000000e+001  9.8000000e+001  9.9000000e+001

Cuando se guardan variables en una ubicación remota, save solo permite especificar fmt como '-mat'.

Tipos de datos: char | string

Versión del archivo MAT, especificada como una de las siguientes opciones. Cuando se utiliza el formato de comando de save, no es necesario encerrar el valor de entrada entre comillas simples o dobles.

Valor de versionCarga en versiones de MATLABFuncionalidades admitidasCompresiónTamaño máximo de cada variable
'-v7.3'7.3 (R2006b) o posterior

Guardar y cargar fragmentos de variables y todas las funcionalidades de la versión 7. La versión 7.3 también permite guardar variables sin comprimir, utilizando la opción '-nocompression'.

Sí (valor predeterminado)≥2 GB en ordenadores de 64 bits
'-v7'7.0 (R14) o posterior

Cifrado de caracteres Unicode®, que permite compartir archivos entre sistemas que utilizan diferentes esquemas de cifrado de caracteres predeterminados y todas las funcionalidades de la versión 6. La versión 7 también permite guardar variables sin comprimir, utilizando la opción '-nocompression'.

Sí (valor predeterminado)2^31 bytes por variable
'-v6'5 (R8) o posterior

Arreglos de n dimensiones, arreglos de celdas, arreglos de estructura, nombres de variables de más de 19 caracteres y todas las funcionalidades de la versión 4.

No2^31 bytes por variable
'-v4'Todas

Arreglos double de dos dimensiones, de caracteres y dispersos.

No100.000.000 elementos por arreglo y 2^31 bytes por variable

Si algún elemento de datos requiere funcionalidades que no son compatibles con la versión especificada, MATLAB no guarda esos elementos y emite una advertencia. No puede especificar una versión posterior a la versión instalada actualmente de MATLAB.

Nota

Los archivos MAT de la versión 7.3 utilizan un formato basado en HDF5 que requiere cierto almacenamiento adicional para describir el contenido del archivo. Para los arreglos de celdas, arreglos de estructura u otros contenedores que pueden almacenar tipos de datos heterogéneos, los archivos MAT de la versión 7.3 son a veces más grandes que los archivos MAT de la versión 7.

Para ver o establecer la versión predeterminada de los archivos MAT, vaya a la pestaña Home y, en la sección Environment, haga clic en Preferences. Seleccione MATLAB > General > MAT-Files y, después, elija una opción de MAT-file save format.

Tipos de datos: char | string

Limitaciones

  • Cuando se trabaja con datos remotos, la función save:

    • no permite guardar variables en HDFS™

    • no permite guardar las variables del área de trabajo en otro formato que no sea un archivo MAT.

Sugerencias

  • Para una mayor flexibilidad a la hora de crear archivos ASCII, utilice fprintf.

  • Guardar objetos de gráficas con la función save puede resultar en un archivo de gran tamaño, ya que el archivo contiene toda la información necesaria para regenerar el objeto.

  • Evite guardar figuras con la función save. En su lugar, utilice la función savefig. Utilizar save para guardar una figura en la versión R2014b o posterior hace que no se pueda acceder al archivo MAT en versiones anteriores de MATLAB. Si utiliza save para guardar una figura, la función muestra un mensaje de advertencia. Elimine cualquier figura antes de usar save. Tenga en cuenta que las figuras pueden no aparecen directamente en el área de trabajo. Por ejemplo, pueden estar almacenadas en una estructura o en el área de trabajo de una función callback.

Historial de versiones

Introducido antes de R2006a