exponenta event banner

сохранить

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

Описание

пример

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, которая содержит три поля, 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 или 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 и сохранить их в версию 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

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

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

Ограничения

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

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

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

Совет

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

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

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

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