сохранение

Сохраните переменные рабочей области в файл

Синтаксис

save(filename)
save(filename,variables)
save(filename,variables,fmt)
save(filename,variables,version)
save(filename,variables,version,'-nocompression')
save(filename,variables,'-append')
save(filename,variables,'-append','-nocompression')
save filename

Описание

пример

save(filename) сохраняет все переменные от текущей рабочей области в отформатированном двоичном файле MATLAB® (MAT-файл) под названием filename. Если filename существует, save перезаписывает файл.

пример

save(filename,variables) сохраняет только переменные или поля массива структур, заданного variables.

пример

save(filename,variables,fmt) сохраняет в формате файла, заданном fmt. Аргумент variables является дополнительным. Если вы не задаете variables, функция save сохраняет все переменные в рабочей области.

пример

save(filename,variables,version) сохраняет в версию MAT-файла, заданную version. Аргумент variables является дополнительным.

пример

save(filename,variables,version,'-nocompression') сохраняет переменные в MAT-файл без сжатия. Флаг '-nocompression' только поддерживает Версию MAT-файла 7.3. Поэтому необходимо задать version как '-v7.3'. Аргумент variables является дополнительным.

пример

save(filename,variables,'-append') добавляет новые переменные к существующему файлу. Если переменная уже существует в MAT-файле, то save перезаписывает ее со значением в рабочей области.

Для ASCII-файлов '-append' добавляет данные в конец файла.

Чтобы добавить к MAT-файлу Версии 6, необходимо также включать '-v6' как входной параметр.

пример

save(filename,variables,'-append','-nocompression') добавляет новые переменные к существующему файлу без сжатия. Существующим файлом должна быть Версия MAT-файла 7.3.

пример

save filename является формой команды синтаксиса. Форма команды требует меньшего количества специальных символов. Вы не должны вводить круглые скобки или заключать входной параметр в одинарные или двойные кавычки. Разделите входные параметры пробелами вместо запятых.

Например, чтобы сохранить файл с именем test.mat, эти операторы эквивалентны:

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

Можно включать любой из входных параметров, описанных в предыдущих синтаксисах. Например, чтобы сохранить переменную под названием X:

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

Не используйте форму команды, когда любой из входных параметров, таких как filename, будет переменными или строками.

Примеры

свернуть все

Сохраните все переменные от рабочей области в бинарном MAT-файле, test.mat. Если filename является переменной, используйте синтаксис функций.

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

В противном случае также можно использовать синтаксис команд.

save test.mat

Удалите переменные из рабочей области, и затем получите данные с функцией load.

clear
load('test.mat')

Создайте и сохраните две переменные, p и q, к файлу под названием pqfile.mat.

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

MATLAB® сохраняет переменные в файл, pqfile.mat, в текущей папке.

Также можно использовать синтаксис команд, чтобы сохранить переменные, p и q.

save pqfile.mat p q

Создайте две переменные, сохраните их в ASCII-файл, и затем просмотрите содержимое файла.

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

Функция type отображает содержимое файла.

Также используйте синтаксис команд для операции save.

save pqfile.txt p q -ascii

Создайте структуру, s1, который содержит три поля, a, b и c.

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

Сохраните поля структуры s1 как отдельные переменные в файле под названием newstruct.mat.

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

Проверьте содержимое файла с помощью функции 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               262  cell                
  c         1x6                12  char                

Создайте две переменные и сохраните их в MAT-файл Версии 7.3 под названием example.mat.

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

Также можно использовать синтаксис команд для операции save.

save example.mat A B -v7.3

Создайте две переменные и сохраните их, без сжатия, к Версии MAT-файл 7.3 под названием myFile.mat.

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

Также используйте синтаксис команд для операции save.

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

Флаг '-nocompression' упрощает более быстрое сохранение для тех переменных, которые больше, чем Гбайт 2 или те, которые не извлекают выгоду из сжатия.

Сохраните две переменные в MAT-файл. Затем добавьте третью переменную к тому же файлу.

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

Просмотрите содержимое MAT-файла.

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

  p          1x10               80  double              
  q         10x10              800  double              

Создайте новую переменную, a, и добавьте его к MAT-файлу.

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

Просмотрите содержимое MAT-файла.

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

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

Переменная, a, добавлена к test.mat, не перезаписывая предыдущие переменные, p и q.

Примечание

Чтобы добавить к MAT-файлу Версии 6, задайте и '-v6' и '-append'. Например, чтобы сохранить переменный a в файл, test.mat, вызовите:

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

Сохраните две переменные в MAT-файл. Затем добавьте третью переменную, без сжатия, к тому же файлу.

Создайте две переменные A и B и сохраните их в 7.3 Версии MAT-файла. По умолчанию, save функционируют переменные сжатий A и B прежде, чем сохранить их в myFile.mat.

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

Просмотрите содержимое MAT-файла.

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

  A          5x5               200  double              
  B         10x10              800  double              

Создайте новый переменный C и добавьте его, без сжатия, к myFile.mat.

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

Просмотрите содержимое MAT-файла.

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

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

Входные параметры

свернуть все

Имя файла, заданного как вектор символа или скаляр строки. Если вы не задаете filename, функция save сохраняет в файл с именем matlab.mat.

Если filename не имеет никакого расширения (то есть, никакой период, сопровождаемый текстом), и значение format не задано, то MATLAB добавляет .mat. Если filename не включает полный путь, MATLAB сохраняет в текущую папку. У вас должно быть разрешение записать в файл.

При использовании формы команды save является ненужным заключить входной параметр в одинарные кавычки. Однако, если filename содержит пробел, необходимо заключить аргумент в одинарные кавычки. Например, save 'filename withspace.mat'.

Примечание

Не используйте форму команды, когда filename будет строкой.

Пример: 'myFile.mat'

Имена переменных, чтобы сохранить, заданный как векторы символов или скаляры строки. При использовании формы команды save вы не должны заключать входной параметр в одинарные кавычки.

Примечание

Не используйте форму команды, когда variables будет строкой.

variables может быть в одной из следующих форм.

Форма входного параметра variablesПеременные, чтобы сохранить
var1,...,varNСохраните перечисленные переменные, заданные как векторы отдельного символа или строки.
Используйте подстановочный знак '*', чтобы совпадать с шаблонами. Например, save('filename.mat','A*') сохраняет все переменные в файле, которые запускаются с A.
'-regexp',expr1,...,exprNСохраните только переменные, имена которых совпадают с регулярными выражениями, заданными как векторы символов или строки. Например, save('filename.mat','-regexp','^Mon','^Tues') сохраняет только переменные в файле, имена которого начинаются с Mon или Tues.
'-struct',structName Сохраните поля скалярной структуры, заданной structName как отдельные переменные в файле. Например, save('filename.mat','-struct','S') сохраняет скалярную структуру, S.
'-struct',structName,field1,...,fieldNСохраните заданные поля заданной скалярной структуры как отдельные переменные в файле. Например, save('filename.mat','-struct','S','a','b') сохраняет поля S.a и S.b b.
'-struct',structName,'-regexp',expr1,...,exprNСохраните только поля, имена которых совпадают с регулярными выражениями, заданными как векторы символов или строки.

Формат файла, заданный как одно из следующих. При использовании формы команды save вы не должны заключать входной параметр в одинарные или двойные кавычки, например, save myFile.txt -ascii -tabs.

Значение fmtFileFormat
'-mat'

Бинарный формат MAT-файла.

ASCII

Текстовый формат с 8 цифрами точности.

'-ascii','-tabs'

Формат разделенного текста вкладки с 8 цифрами точности.

'-ascii','-double'

Текстовый формат с 16 цифрами точности.

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

Формат разделенного текста вкладки с 16 цифрами точности.

Для MAT-файлов данные экономили на одной машине и загрузили на другой машине, сохраняет столько же точности и области значений сколько различная машина, которую позволяют форматы с плавающей точкой.

Используйте один из текстовых форматов, чтобы сохранить числовые значения MATLAB в текстовые файлы. В этом случае:

  • Каждая переменная должна быть двумерным массивом double.

  • Вывод включает только действительный компонент комплексных чисел.

  • MATLAB записывает данные от каждой переменной последовательно к файлу. Если вы планируете использовать функцию load, чтобы считать файл, все переменные должны иметь то же количество столбцов. Функция load создает единственную переменную из файла.

Если вы задаете текстовый формат, и любая переменная является двумерным символьным массивом, то MATLAB переводит символы в их соответствующие внутренние коды ASCII. Например, 'abc' появляется в текстовом файле как:

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

Типы данных: char | string

Версия MAT-файла, заданная как одно из следующих. При использовании формы команды save вы не должны заключать входной параметр в одинарные или двойные кавычки.

Значение versionЗагрузки в версиях MATLABПоддерживавшие функцииСжатиеМаксимальный размер каждой переменной
'-v7.3'7.3 (R2006b) или позже

Сохранение и загрузка частей переменных и всех функций Версии 7. Версия 7.3 также поддерживает переменные сохранения без сжатия с помощью опции '-nocompression'.

Да (значение по умолчанию)≥ 2 Гбайт на 64-битных компьютерах
'-v7'7.0 (R14) или позже

Кодировка символов Unicode®, которая включает совместный доступ к файлам между системами, которые используют различные схемы кодировки символов по умолчанию и все функции Версии 6.

Да2^31 байты на переменную
'-v6'5 (R8) или позже

N-мерные массивы, массивы ячеек, массивы структур, имена переменных дольше, чем 19 символов и все функции Версии 4.

Нет2^31 байты на переменную
'-v4'Все

Двумерный double, символ и разреженные массивы.

Нет100 000 000 элементов на массив, и 2^31 байты на переменную

Если какие-либо элементы данных требуют функций, которые не поддерживает заданная версия, MATLAB не сохраняет те элементы и выдает предупреждение. Вы не можете задать версию позже, чем ваша текущая версия программного обеспечения MATLAB.

Примечание

Версия 7.3 MAT-файлы используют базирующийся формат HDF5, который требует, чтобы некоторое служебное устройство хранения данных описало содержимое файла. Для массивов ячеек, массивов структур или других контейнеров, которые могут сохранить типы гетерогенных данных, MAT-файлы Версии 7.3 иногда больше, чем MAT-файлы Версии 7.

Чтобы просмотреть или установить версию по умолчанию для MAT-файлов, перейдите к вкладке Home и в разделе Environment, нажмите Preferences. Выберите MATLAB> General> MAT-Files и затем выберите, MAT-file сохраняют параметр формата.

Типы данных: char | string

Советы

  • Для большей гибкости в создании ASCII-файлов используйте dlmwrite или fprintf.

  • Сохранение графических объектов с функцией save может привести к большому файлу, поскольку файл содержит всю информацию, запрошенную, чтобы регенерировать объект.

  • Постарайтесь не сохранять фигуры с функцией save. Используйте функцию savefig вместо этого. Используя save, чтобы сохранить фигуру в R2014b или позже делает MAT-файл недоступным в более ранних версиях MATLAB. При использовании save, чтобы сохранить фигуру, то функция отображает предупреждающее сообщение. Удалите любые фигуры перед использованием save. Следует иметь в виду, что фигуры не могут быть непосредственно в вашей рабочей области. Например, они могут быть сохранены в структуре или в рабочей области функции обратного вызова.

Представлено до R2006a

Была ли эта тема полезной?