Сохранение файла из рабочего пространства Matlab
Я пытаюсь сохранить файл из рабочего пространства Матлаб с помощью следующей команды: save ‘mydat.dat’ ‘time’, где ‘time’ — последовательность заданных чисел Файл сохраняется, но некорректно: MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Wed Oct 28 22:15:03 2020 IM ^ xњ]ЗM @P†бЈ.]%IH’ьнГЭЊЃЃ™EY’Ў%єЬwд«·зњXD[`УшОзПmЮ—’mYзРЮ»ьwNО oгPЁ1ВSМ°А+¬±Б;мqАС
Отслеживать
задан 28 окт 2020 в 19:22
user413310 user413310
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Команда save предназначена для сохранения файлов в формате .mat — MATLAB® formatted binary file (MAT-file). Чтобы прочитать этот файл, используйте load(‘mydat.mat’)
Отслеживать
ответ дан 4 дек 2020 в 20:39
86 5 5 бронзовых знаков
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Как сохранить файл в матлабе

Серия iPhone от Apple редко чем удивляет. Когда вы получаете новый iPhone, общее впечатление, скорее всего, будет очень похожим на ваше предыдущее устройство. Однако всё совсем не так в лагере владельцев устройств на Android. Существуют телефоны Android всех форм и размеров, не говоря уже о разных ценовых категориях. Другими словами, Android-телефон может подойти многим. Однако поиск лучших телефонов на Android может быть сложной задачей.
Импорт и экспорт данных
Функция dlmread (чтение из текстовых файлов) предназначена для чтения матриц из текстовых файлов. Первый аргумент функции – имя файла. Результат записывается в матрицу.
>> a = dlmread('mat1.txt') a = 1 2 3 4 5 6 7 8 9 10 11 12
Вторым аргументом можно явно указать разделитель чисел в файле, например ‘,’
>> b = dlmread('mat2.txt',',');
Чтобы узнать размер прочитанной матрицы по каждому измерению используется функция size, которая возвращает массив двух значений: количество прочитанных строк и столбцов:
>> size(b) ans = 3 2
Чтобы узнать общее число прочитанных чисел можно перемножив размеры матрицы, используя функцию prod
>> prod(size(b)) ans = 6
или использовать функцию numel (количество всех элементов)
>> numel(b) ans = 6
Третий и четвертый аргумент dlmread смещение строки и столбца, начиная с которых нужно начинать считывать данные из файла. Например, чтобы пропустить 1 строку и один столбец, необходимо вызвать функцию со следующими дополнительными параметрами
>> b = dlmread('mat2.txt',',', 1, 1) b = 5 6 8 9 11 12
Чтение данных из Excel файлов
Для чтение данных из XLS файлов используется функция xlsread
>> xlsNum = xlsread('Данные.xlsx'); >> xlsNum 5 6 8 9 11 12
### Функция readtable
Функция позволяет импортировать таблицы из файлов различных форматов. В отличие от результата работы функции xlsread результатом работы функции readtable является объект table, который содержит дополнительную информацию о таблице: об именах столбцов, строк. Без дополнительных указаний функция readtable считает, что в первой строке таблицы записаны имена её столбцов.
В рабочем каталоге MATLAB находится xls-файл следующего на листе “Лист1” которого находятся следующие данные:

Результатом работы функции readtable будет таблица (объект table)
>> data = readtable('Книга1.xlsx') data = 3×3 table Var1 COL1 COL2 ______ ____ ____ 'ROW1' 1.5 2 'ROW2' 1.6 3 'ROW3' 1.9 4
Первая строка в первом столбце таблицы не содержит никаких значений (ячейка А1 пустая), поэтому первому столбцу было присвоено имя автоматически Var1. Второй и третий столбцы в таблице имеют имена COL1 и COL2 соответственно. Функция readtable рассматривает эти значения как имена столбцов. Если такое поведение функции readtable нежелательно, то можно передать функции значение ‘ReadVariableNames’ равное false
>> data = readtable('Книга1.xlsx', 'ReadVariableNames', false) data = 4×3 table Var1 Var2 Var3 ______ ______ ______ '' 'COL1' 'COL2' 'ROW1' '1.5' '2' 'ROW2' '1.6' '3' 'ROW3' '1.9' '4'
Видно, что в этом случае, поскольку столбцы исходной таблицы в таком представлении содержат неоднородные данные (и числа и строки), все значения в столбцах рассматриваются как строковые без попыток их преобразования в числовые значения. Для корректного чтения данных из таблицы ‘Книга1.xlsx’ необходимо использовать поведение функции readtable по умолчанию, т.е.
>> data = readtable('Книга1.xlsx') data = 3×3 table Var1 COL1 COL2 ______ ____ ____ 'ROW1' 1.5 2 'ROW2' 1.6 3 'ROW3' 1.9 4
В этом случае можно получить содержимое столбца, используя его имя. Например data.COL1 представляет собой матрицу столбец
>> data.COL1 ans = 1.5000 1.6000 1.9000
Столбец data.Var1 это матрица ячеек, содержащая строковые значения
>> data.Var1 ans = 3×1 cell array 'ROW1'> 'ROW2'> 'ROW3'>
Список имен столбцов содержится в атрибуте (свойстве) таблицы data.VariableNames, которое считывается следующим образом
>> data.Properties.VariableNames ans = 1×3 cell array 'Var1'> 'COL1'> 'COL2'>
Для того, чтобы значения в первом столбце рассматривались как имена строк, необходимо использовать опцию ReadRowNames
>> data = readtable('Книга1.xlsx','ReadRowNames',true) data = 3×2 table COL1 COL2 ____ ____ ROW1 1.5 2 ROW2 1.6 3 ROW3 1.9 4
Для чтения извлечения данных из строки по её имени используется следующий синтаксис
>> data('ROW1',:) ans = 1×2 table COL1 COL2 ____ ____ ROW1 1.5 2
Результатом является объект типа table. Можно извлечь несколько строк по их именам, например так
>> data('ROW1', 'ROW2'>,:) ans = 2×2 table COL1 COL2 ____ ____ ROW1 1.5 2 ROW2 1.6 3
Чтобы извлечь данные в виде матрицы необходимо использовать свойство таблицы Variables
>> data('ROW1',:).Variables ans = 1.5000 2.0000
Для исходной таблицы это свойство вернет все числовые значения в виде матрицы
>> data.Variables ans = 1.5000 2.0000 1.6000 3.0000 1.9000 4.0000
Экспорт данных
Сохранение таблицы в файле ‘data.txt’
writetable(data,'data.txt')
Сохранение в файле имён строк
writetable(data,'data.txt','WriteRowNames',true)
© 2023. All rights reserved.
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-файл
Сохраните все переменные из рабочей области в бинарном MAT-файле, test.mat . Если filename переменная, используйте синтаксис функций.
filename = 'test.mat'; save(filename)
В противном случае также можно использовать синтаксис команд.
save test.mat
Удалите переменные из рабочей области, и затем получите данные с load функция.
clear load('test.mat')
Сохранение определенных переменных в 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 файле
Создайте две переменные, сохраните их в 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
Создайте две переменные и сохраните их в 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 или 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-файлу
Сохраните две переменные в 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-файлу без сжатия
Сохраните две переменные в 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 — Имя файла
‘matlab.mat’ (значение по умолчанию) | вектор символов | строковый скаляр
Имя файла в виде вектора символов или строкового скаляра. Если вы не задаете 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 |
|---|---|
| Amazon S3™ | s3 |
| Windows Azure ® Устройство хранения данных блоба | wasb , wasbs |
save функционируйте только поддерживает MAT-файлы версии 7.3 сохранения к удаленным местоположениям.
Для получения дополнительной информации о подготовке MATLAB, чтобы получить доступ к вашему сервису оперативного хранения, смотрите работу с Удаленными данными.
Пример: ‘myFile.mat’
Пример: ‘s3://bucketname/path_to_file/my_file.mat’
variables — Имена переменных, чтобы сохранить
вектор символов | строковый скаляр
Имена переменных, чтобы сохранить в виде векторов символов или строковых скаляров. При использовании формы команды 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 | Сохраните только поля, имена которых совпадают с регулярными выражениями в виде векторов символов или строк. |
fmt FileFormat
‘-mat’ (значение по умолчанию) | ‘-ascii’ | ‘-ascii’,’-tabs’ | ‘-ascii’,’-double’ | ‘-ascii’,’-double’,’-tabs’
Формат файла в виде одного из следующих. При использовании формы команды save , вы не должны заключать вход в одинарные или двойные кавычки, например, save myFile.txt -ascii -tabs .
Бинарный формат MAT-файла.
Текстовый формат с 8 цифрами точности.
Формат разделенного текста вкладки с 8 цифрами точности.
Текстовый формат с 16 цифрами точности.
Формат разделенного текста вкладки с 16 цифрами точности.
Для MAT-файлов данные экономили на одной машине и загрузили на другой машине, сохраняет столько же точности и области значений сколько различная машина, которую позволяют форматы с плавающей точкой.
Используйте один из текстовых форматов, чтобы сохранить числовые значения MATLAB в текстовые файлы. В этом случае:
- Каждой переменной должен быть двумерный double массив.
- Выход включает только действительный компонент комплексных чисел.
- MATLAB записывает данные от каждой переменной последовательно к файлу. Если вы планируете использовать load функционируйте, чтобы считать файл, все переменные должны иметь одинаковое число столбцов. load функция создает одну переменную из файла.
Если вы задаете текстовый формат, и любая переменная является двумерным символьным массивом, то MATLAB переводит символы в их соответствующие внутренние коды ASCII. Например, ‘abc’ появляется в текстовом файле как:
9.7000000e+001 9.8000000e+001 9.9000000e+001
При сохранении в удаленное местоположение, save только поддержки, задающие fmt как ‘-mat’ .
Типы данных: char | string
version ‘MATFileVersion’
‘-v7’ (значение по умолчанию) | ‘-v7.3’ | ‘-v6’ | ‘-v4’
Версия MAT-файла в виде одного из следующих. При использовании формы команды save , вы не должны заключать вход в одинарные или двойные кавычки.
Сохранение и загрузка частей переменных и всех функций Версии 7. Версия 7.3 также поддерживает переменные сохранения без сжатия с помощью ‘-nocompression’ опция.
Unicode ® кодировка символов, которая включает совместный доступ к файлам между системами, которые используют различные схемы кодировки символов по умолчанию и все функции Версии 6. Версия 7 также поддерживает переменные сохранения без сжатия с помощью ‘-nocompression’ опция.
N-мерные массивы, массивы ячеек, массивы структур, имена переменных дольше, чем 19 символов и все функции Версии 4.
Двумерный double , символ и разреженные массивы.
Если какие-либо элементы данных требуют функций, которые не поддерживает заданная версия, 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