Как сохранить файл в Matlab

Обновлено: 21.11.2024

Сохранить переменные рабочей области на диске

Графический интерфейс

В качестве альтернативы функции сохранения выберите «Сохранить рабочую область как» в меню «Файл» на рабочем столе MATLAB или используйте браузер рабочей области.

Описание

save самостоятельно сохраняет все переменные рабочей области в двоичном формате в текущем каталоге в файле с именем matlab.mat . Получить данные с помощью load . MAT-файлы представляют собой бинарные файлы формата MATLAB двойной точности. Они могут быть созданы на одной машине, а затем прочитаны MATLAB на другой машине с другим форматом с плавающей запятой, сохраняя при этом максимальную точность и диапазон, насколько позволяют разные форматы. Ими также можно управлять с помощью других программ, внешних по отношению к MATLAB.

save('filename') сохраняет все переменные рабочей области в текущем каталоге в filename.mat . Чтобы сохранить в другой каталог, используйте полный путь к имени файла. Если имя файла представляет собой специальную строку stdio , команда сохранения отправляет данные в виде стандартного вывода.

save('filename', 'var1', 'var2', . ) сохраняет только указанные переменные рабочей области в filename.mat . Используйте подстановочный знак *, чтобы сохранить только те переменные, которые соответствуют указанному шаблону. Например, save('A*') сохраняет все переменные, начинающиеся с A .

save('filename', '-struct' , 's') сохраняет все поля скалярной структуры s как отдельные переменные в файле filename .

save('filename', '-struct', 's', 'f1', 'f2', . ) сохраняет как отдельные переменные только указанные поля структуры ( s.f1 , s.f2 , . ).< /p>

save( '-regexp' , expr1, expr2, . ) сохраняет те переменные, которые соответствуют любому из регулярных выражений expr1 , expr2 и т. д.

save(. ' format ') позволяет использовать другие форматы данных, доступные с функцией сохранения. См. следующую таблицу.

сохранить имя файла var1 var2 . является командной формой синтаксиса.

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

Чтобы переопределить параметры сжатия и Unicode для всех ваших сеансов работы с MATLAB, используйте диалоговое окно «Настройки». Откройте диалоговое окно Preferences и выберите General, а затем MAT-Files. Чтобы отключить сжатие данных и кодировку Unicode, щелкните Обеспечить обратную совместимость (-v6). Чтобы снова включить эти функции, щелкните Использовать функции по умолчанию (Юникод и сжатие). Дополнительные сведения см. в разделе Общие настройки для MATLAB в документации по инструментам рабочего стола и среде разработки.

Для получения информации по любой из следующих тем, связанных с сохранением в MAT-файлы, см. Экспорт данных в MAT-файлы в документации "MATLAB Programming":

    Добавление переменных к существующему MAT-файлу Сжатие данных в MAT-файле Сохранение в формате ASCII Сохранение в формате MATLAB версии 4 Сохранение с кодировкой символов Unicode Требования к хранению данных Сохранение из внешних программ

Сохранить все переменные из рабочей области в бинарном MAT-файле test.mat:

Сохранить переменные p и q в двоичном MAT-файле test.mat:

Сохраните переменные vol и temp в формате ASCII в файл с именем june10 :

Сохраняйте поля структуры s1 как отдельные переменные, а не как структуру целиком.

Проверьте, что было сохранено в newstruct.mat:

Считайте только поле b в рабочую область MATLAB.

Используя регулярные выражения, сохраните в MAT-файле mydata.mat те переменные, имена которых начинаются с Mon , Tue или Wed :

Вот еще один способ сделать то же самое. В этом случае есть три отдельных аргумента выражения:

Сохраните несжатую матрицу 3000 на 3000 в файл c1.mat и сжатую в файл c2.mat . Сжатый файл занимает около четверти дискового пространства, необходимого для хранения несжатых данных:

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

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

Синтаксис

Описание

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

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

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

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

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

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

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

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

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

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

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

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

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

Примеры

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

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

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

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

Сохранить определенные переменные в MAT-файле

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

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

Вы также можете использовать синтаксис команды для сохранения переменных p и q .

Сохранить данные в файл ASCII

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

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

В качестве альтернативы используйте синтаксис команды для операции сохранения.

Сохранить поля структуры как отдельные переменные

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

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

Проверьте содержимое файла с помощью функции whos.

Сохранить переменные в MAT-файл версии 7.3

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

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

Сохранение переменных в MAT-файл без сжатия

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

В качестве альтернативы используйте синтаксис команды для операции сохранения.

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

Добавить переменную в MAT-файл

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

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

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

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

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

Примечание

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

Добавить переменную в MAT-файл без сжатия

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

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

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

Создайте новую переменную C и добавьте ее без сжатия в myFile.mat .

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

Входные аргументы

filename — Имя файла
'matlab.mat' (по умолчанию) | вектор символов | строковый скаляр

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

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

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

Примечание

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

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

имя_схемы :// путь_к_файлу / мой_файл.mat

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

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

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

Дополнительную информацию о настройке MATLAB для доступа к онлайн-хранилищу см. в разделе Работа с удаленными данными.

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

Пример: 's3://bucketname/path_to_file/my_file.mat'

variables — Имена переменных для сохранения
вектор символов | строковый скаляр

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

Примечание

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

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

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

fmt — Формат файла
'-mat' (по умолчанию) | '-ascii' | '-ascii','-табы' | '-ascii','-двойной' | '-ascii','-двойной','-табс'

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

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

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

Текстовый формат с разделителями табуляцией и точностью до 8 цифр.

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

Текстовый формат с разделителями табуляцией и точностью до 16 цифр.

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

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

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

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

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

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

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

Типы данных: char | строка

version — версия MAT-файла
'-v7' (по умолчанию) | '-v7.3' | '-v6' | '-v4'

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

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

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

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

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

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

Примечание

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

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

Типы данных: char | строка

Ограничения

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

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

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

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

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

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

Я недавно установил Matlab R2020a на свой ноутбук с Windows 10, и всякий раз, когда я создаю файл сценария или функции и нажимаю «Выполнить», мне предлагается сохранить файл, но когда я называю его и нажимаю «ОК», а затем снова нажимаю «Выполнить», я снова предлагается сохранить файл, так как файл не сохраняется. Может ли кто-нибудь предложить, как я могу решить эту проблему?

1 комментарий

Прямая ссылка на этот комментарий

Прямая ссылка на этот комментарий

Ответы (1)

Прямая ссылка на этот ответ

Прямая ссылка на этот ответ

На вкладке "Главная" в разделе "Среда" нажмите "Настройки" . На левой панели перейдите в MATLAB->Editor/Debugger->Backup files. На правой панели снимите флажок «Сохранить файлы без названия».

0 комментариев

См. также

Категории

Охота за сокровищами сообщества

Найдите сокровища в MATLAB Central и узнайте, как сообщество может вам помочь!

Произошла ошибка

Не удалось выполнить действие из-за изменений, внесенных на страницу. Перезагрузите страницу, чтобы увидеть ее обновленное состояние.

Выберите веб-сайт

Выберите веб-сайт, чтобы получить переведенный контент, где он доступен, и ознакомиться с местными событиями и предложениями. В зависимости от вашего местоположения мы рекомендуем вам выбрать: .

Вы также можете выбрать веб-сайт из следующего списка:

Как добиться максимальной производительности сайта

Выберите китайский сайт (на китайском или английском языке) для лучшей производительности сайта. Сайты других стран MathWorks не оптимизированы для посещений из вашего местоположения.

Рабочее пространство не поддерживается между сеансами работы с MATLAB®. Когда вы выходите из MATLAB, рабочее пространство очищается. Однако вы можете сохранить любые или все переменные в текущей рабочей области в MAT-файл ( .mat ). Затем вы можете повторно использовать переменные рабочей области позже во время текущего сеанса MATLAB или во время другого сеанса, загрузив сохраненный MAT-файл.

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

Существует несколько способов интерактивного сохранения переменных рабочей области:

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

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

Чтобы сохранить переменные в скрипт MATLAB, нажмите кнопку «Сохранить рабочую область» или выберите параметр «Сохранить как», а в окне «Сохранить как» установите для параметра «Тип файла» значение «Скрипт MATLAB». Переменные, которые нельзя сохранить в сценарии, сохраняются в MAT-файле с тем же именем, что и у сценария.

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

Чтобы сохранить поля скалярной структуры как отдельные переменные, используйте функцию сохранения с параметром -struct. Это может быть полезно, если вы ранее загрузили переменные из MAT-файла в структуру с использованием синтаксиса S = load( filename ) и хотите сохранить исходную структуру переменных при сохранении в новый MAT-файл.

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

В MATLAB Online™ переменные сохраняются между сеансами. Сохранение позволяет очистить рабочее пространство и загрузить переменные позже. Чтобы сохранить переменные, используйте функции save или matfile.

Загрузить переменные рабочей области

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

Чтобы загрузить подмножество переменных из MAT-файла на вкладке «Главная», в разделе «Переменная» нажмите «Импорт данных». Выберите MAT-файл, который вы хотите загрузить, и нажмите «Открыть». Вы также можете перетащить нужные переменные из панели сведений обозревателя текущей папки выбранного MAT-файла в обозреватель рабочей области. Панель Details недоступна в MATLAB Online.

Чтобы загрузить переменные, сохраненные в сценарии MATLAB, в рабочую область, просто запустите сценарий.

Вы также можете загружать сохраненные переменные программно, используя функцию загрузки. Например, загрузить все переменные из файла durer.mat

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

Внимание

Когда вы загружаете данные в рабочую область MATLAB, новые переменные, которые вы создаете, перезаписывают любые существующие переменные в рабочей области с тем же именем. Чтобы избежать перезаписи существующих переменных, используйте функцию загрузки для загрузки переменных в структуру. Например, S = load('durer') загружает все переменные из файла durer.mat в структуру S .

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

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

В качестве альтернативы используйте команду whos -file имя_файла . Эта функция возвращает имя, размеры, размер и класс всех переменных в указанном MAT-файле. Например, вы можете просмотреть содержимое примера файла durer.mat .

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

Читайте также: