Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

save

Guardar las 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 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. La opción "-nocompression" solo admite la versión 7 (valor predeterminado) y la versión 7.3 de los archivos MAT. 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 especificar también version como "-v6".

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. Si alguna entrada contiene espacios, enciérrela entre comillas simples.

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 X en un archivo llamado my file.mat:

save 'my file.mat' X    % command form, using single quotes
save("my file.mat","X") % function form, using double quotes

No utilice el formato de comando si alguna de las entradas, como filename, es una variable.

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")

La función save 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,3);
q = ones(3);
save("pqfile.txt","p","q","-ascii")
type("pqfile.txt")
   8.1472369e-01   9.0579194e-01   1.2698682e-01
   1.0000000e+00   1.0000000e+00   1.0000000e+00
   1.0000000e+00   1.0000000e+00   1.0000000e+00
   1.0000000e+00   1.0000000e+00   1.0000000e+00

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

save pqfile.txt p q -ascii

Cree una estructura que contenga tres campos.

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.

whos("-file","newstruct.mat")
  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              
  b         1x2               390  cell                
  c          -                150  string              

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.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

La opción "-nocompression" facilita el guardado más rápido.

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 función save añade la variable a 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 añadir la variable a al archivo MAT de la versión 6 test.mat, ejecute:

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.3. De forma predeterminada, la función save comprime las variables 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 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              

Cree distintas variables y utilice la sintaxis de comando para guardarlas en un archivo llamado myMat.mat.

a = 1;
b = 2;
c = 7;
d = 4;
save myMat.mat a c

Modifique la variable c.

c = 3;

Guarde solo las variables del área de trabajo que ya existan en myMat.mat.

existingVars = whos("-file","myMat.mat");
save("myMat.mat",existingVars.name)

Argumentos de entrada

contraer todo

Nombre del archivo, especificado como escalar de cadena o vector de caracteres. 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, la función save añade .mat a filename. Si filename no incluye una ruta completa, la función save guarda las variables en la carpeta actual. Debe tener permiso para escribir en el archivo.

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 admite la opción de guardar en ubicaciones remotas solo para los archivos MAT de la versión 7.3.

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

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

Ejemplo: "myFile.mat"

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

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

variables puede tener uno de estos formatos:

Formato de la entrada de variablesVariables que se guardan
var1,var2,...,varNGuarda las variables de la lista, especificadas como escalares de cadena o vectores de caracteres. Utilice el carácter comodín "*" para que los patrones coincidan. Por ejemplo, save("filename.mat","A*") o save filename.mat A* guarda todas las variables en el área de trabajo cuyos nombres comienzan por A.
"-regexp",expr1,expr2,...,exprNGuarda solo las variables cuyos nombres coinciden con las expresiones regulares, especificadas como vectores de caracteres o escalares de cadena. Por ejemplo, save("filename.mat","-regexp","^Mon","^Tues") o save filename.mat -regexp ^Mon ^Tues guarda solo las variables en el área de trabajo cuyos nombres comienzan por Mon o Tues.
"-struct",structName Guarda los campos de la estructura escalar especificada por structName como variables individuales en el archivo. Por ejemplo, save("filename.mat","-struct","S") guarda los campos de la estructura escalar S.
"-struct",structName,field1,field2,...,fieldNGuarda 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,expr2,...,exprNGuarda solo los campos cuyos nombres coinciden con las expresiones regulares, especificados como vectores de caracteres o escalares de cadena.

Formato de archivo, especificado como uno de los valores de esta tabla:

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 17 dígitos de precisión

"-ascii","-double","-tabs"

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

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.

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 2D.

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

  • La función save 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 especifica un formato de texto y alguna variable es un arreglo de caracteres, la función save 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: string | char

Versión del archivo MAT, especificada como uno de los valores de esta tabla. 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 fragmentos de variables y todas las funcionalidades de la versión 7.

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)231 bytes por variable
"-v6"5 (R8) o posterior

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

No231 bytes por variable
"-v4"Todas

Guardar arreglos double 2D, de caracteres y dispersos.

No100.000.000 elementos por arreglo y 231 bytes por variable

Si algún elemento de datos requiere funcionalidades que no son compatibles con la versión especificada, la función save 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.

Nota

Los archivos MAT de las versiones 4 y 6 son compatibles con la codificación de caracteres ASCII.

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

Tipos de datos: string | char

Limitaciones

  • Intentar guardar los datos de dos sesiones de MATLAB distintas en el mismo archivo al mismo tiempo puede provocar que se dañe el archivo.

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.

  • No se recomienda 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. Observe que es posible que las figuras no aparezcan directamente en el área de trabajo, sino que pueden, por ejemplo, guardarse en una estructura o en el área de trabajo de una función de callback.

  • El argumento filename puede ser cualquier nombre que sea válido en la plataforma actual. Sin embargo, para asegurarse de que la función load pueda acceder al archivo en cualquier plataforma, no use ninguno de estos caracteres en filename: \ (barra inversa), / (barra inclinada), : (dos puntos), * (asterisco), ? (interrogante), " (comillas inglesas), < (signo menor que), > (signo mayor que), | (pleca), ' (apóstrofo) o ; (punto y coma).

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

expandir todo