save

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

Описание

пример

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

пример

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

пример

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

пример

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

пример

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

The 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               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 Version или 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

The '-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 и сохраните их в версию MAT-файла 7 или 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 - строка.

Чтобы сохранить переменные рабочей области в MAT-файл в удаленном местоположении, задайте filename как единый указатель на ресурсы (URL) этой формы:

scheme_name://path_to_file/ my_file.mat

В зависимости от вашего удаленного местоположения, scheme_name может быть одним из значений в этой таблице.

Удаленное местоположениеscheme_name
Амазонки S3™s3
Windows Azure® Хранилище больших двоичных объектовwasb, wasbs

The save функция поддерживает только сохранение MAT-файлов версии 7.3 в удаленных местоположениях.

Дополнительные сведения о настройке MATLAB для доступа к службе хранения данных в Интернете см. в разделе Работа с удаленными данными.

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

Пример: 's3://bucketname/path_to_file/my_file.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.

Значение fmtФормат файла
'-mat'

Двоичный формат MAT-файла.

'-ascii'

Формат текста с 8 цифрами точности.

'-ascii','-tabs'

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

'-ascii','-double'

Формат текста с 16 цифрами точности.

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

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

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

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

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

  • К выходу относится только действительный компонент комплексных чисел.

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

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

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

При сохранении в удаленном местоположении save поддерживает только указание fmt как '-mat'.

Типы данных: 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.

Примечание

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

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

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

Ограничения

  • При работе с удаленными данными save функция:

    • не поддерживает сохранение в HDFS™

    • не поддерживает сохранение переменных рабочей области в любом формате, кроме MAT-файла.

Совет

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

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

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

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