save

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

Описание

пример

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 (значение по умолчанию) и Версия 7.3. Поэтому необходимо задать version как '-v7' или '-v7.3'. variables аргумент является дополнительным.

пример

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

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

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

пример

save(filename,variables,'-append','-nocompression') добавляют новые переменные к существующему файлу без сжатия. Существующим файлом должна быть Версия MAT-файла 7 (значение по умолчанию) или 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, это содержит три поля, aB, и 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               246  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

Создайте две переменные и сохраните их, без сжатия, к Версии 7 или 7.3 MAT-файл под названием 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 Версии MAT-файла или 7.3. По умолчанию, 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.
'-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. Версия 7 также поддерживает переменные сохранения без сжатия с помощью '-nocompression' опция.

Да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 save format.

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

Советы

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

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

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

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