Запись datastore в файлы
writeall( записывает данные из входа datastore ds,outputLocation)ds для вывода файлов в местоположении, указанном в outputLocation. Количество файлов выхода совпадает с количеством файлов, на которые ссылается datastore.
writeall( записывает данные с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение". Для примера можно задать ds,outputLocation,Name,Value)'OutputType' и расширение файла, такое как 'csv' для определения типа файлов, которые writeall создает.
Запишите datastore на диск, а затем создайте новый datastore для записанных файлов. Этот процесс полезен для сохранения вашей работы или совместного использования datastore с коллегой.
Создайте datastore для airlinesmall.csv набор данных, обработка 'NA' значения как отсутствующие данные. Выберите только Year, Month, и Carrier переменные.
ds = datastore('airlinesmall.csv'); ds.TreatAsMissing = 'NA'; ds.SelectedVariableNames = {'Month','Year','UniqueCarrier'};
Предварительный просмотр datastore.
preview(ds)
ans=8×3 table
Month Year UniqueCarrier
_____ ____ _____________
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
10 1987 {'PS'}
Сохраните этот datastore в новую папку с именем ExampleData на C:\ диск. (Вы можете задать другое расположение записи, особенно если вы не используете компьютер Windows ®.) Задайте 'FolderLayout' как 'flatten' поместить файлы datastore непосредственно в целевую папку, не создавая подпапок.
location = 'C:\ExampleData'; writeall(ds,location,'Folderlayout','flatten')
Очистить ds из рабочей директории. Чтобы восстановить datastore с диска, создайте новый datastore, которое ссылается на ту же папку, где были записаны данные.
clear ds
ds2 = datastore(location);При записи datastore в файлы можно выбрать дублирование или уплощение структуры папки путем установки 'FolderLayout' параметр. Создайте изображение datastore из расположения входа и затем запишите datastore в файлы. Затем запишите файлы в выход местоположении путем дублирования размещения папки. Наконец, запишите файлы как плоский список в выход расположение.
Создайте datastore из 'C:\input\' расположения, который содержит некоторые изображения автомобилей и поездов:

imds = imageDatastore('C:\input\','IncludeSubfolders',true);
Эта структура папки является всего лишь примером. Вы можете попробовать эту функциональность со структурой папки на вашем компьютере, которая содержит файлы изображений.
Исследуйте Folders свойство входа datastore, которое содержит полный путь к входу набору данных.
imds.Folders
ans =
1×1 cell array
{'C:\input\'}Запишите datastore в выход местоположение 'C:\output\'. Значение по умолчанию для 'FolderLayout' параметр 'duplicate'. Поэтому writeall функция дублирует все папки, содержащиеся в Folders свойство input datastore, а затем записывает файлы в соответствующие выходные папки.
writeall(imds,'C:\output\');

Теперь запишите файлы из datastore в выходное расположение 'C:\output\' как плоский список путем установки 'FolderLayout' на 'flatten'. В данном случае, writeall функция не сохраняет входа папку размещения а вместо этого записывает все файлы в расположение с плоским выходом.
writeall(imds,'C:\output\','FolderLayout','flatten');

Для получения дополнительной информации см. FolderLayout.
Можно использовать FilenamePrefix и FilenameSuffix параметры для добавления текста в начало или конец имен выходных файлов. Создайте datastore из входа. Запишите datastore в файлы и добавьте текст в начало имен файлов. Затем снова запишите datastore и добавьте текст в конец имен файлов.
Создайте datastore из 'C:\input\' расположения, который содержит некоторые изображения автомобилей и поездов:

imds = imageDatastore('C:\input\','IncludeSubfolders',true);
Эта структура папки является всего лишь примером. Вы можете попробовать эту функциональность со структурой папки на вашем компьютере, которая содержит файлы изображений.
Теперь запишите файлы в выход место. Задайте значение FilenamePrefix как 'png_' добавить этот текст в начало каждого выхода файла.
writeall(imds,'C:\output\','FilenamePrefix','png_');

Запишите файлы в другое выходное место. Задайте значение FilenameSuffix как '_image' добавить этот текст в конец имени каждого выходного файла.
writeall(imds,'C:\output2\','FilenameSuffix','_image');

ds - Входной datastoreВведите datastore. Можно использовать эти хранилища данных как вход в writeall:
Вы также можете использовать эти хранилища данных с writeall если вы поставляете либо 'OutputFormat' или 'WriteFcn' Пара "имя-значение":
outputLocation - Расположение папки для записи данныхРасположение папки для записи данных, заданное как вектор символов или строковый скаляр. outputLocation может задать полный или относительный путь.
Пример: outputLocation = '../../dir/data'
Пример: outputLocation = "C:\Users\MyName\Desktop"
Типы данных: char | string
Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.
writeall(ds,outputLocation,'FolderLayout','flatten')'OutputFormat' - Выход файлаФормат выходного файла, заданный как разделенная разделенными запятой парами, состоящая из 'OutputFormat' и вектор символов или строковый скаляр.
На основе типа входного datastore dsвыберите одно из следующих значений для файлов выхода. Можно выбрать любой табличный выход вывода для любого из перечисленных ниже табличных хранилищ данных.
Входной параметр Datastore | Выход |
|---|---|
TabulartextDatastore, SpreadsheetDatastore, ParquetDatastore | 'txt', 'csv', 'xlsx', 'xls', 'parquet', или 'parq' |
ImageDatastore | 'png', 'jpg', 'jpeg', 'tif', или 'tiff' |
AudioDatastore | 'wav', 'ogg', 'flac', 'mp4', или 'm4a' |
FileDatastore, TransformedDatastore, CombinedDatastore | Все выходные форматы поддерживаются. |
Для некоторых выходных форматов существуют дополнительные пары "имя-значение", которые можно использовать для уточнения операции записи.
| Выход | Пары "имя-значение" |
|---|---|
| |
| |
| |
| |
|
Типы данных: char | string
'FolderLayout' - Размещение файлов в выходной папке'duplicate' (по умолчанию) | 'flatten'Размещение файлов в выходной папке, заданный как разделенная разделенными запятой парами, состоящая из 'FolderLayout' и любой из них 'duplicate' или 'flatten'.
'duplicate' - The writeall функция реплицирует структуру папки, содержащуюся в расположении входных данных, в указанное выходное расположение. Расположение входных данных содержит Folders свойство входного datastore.
'flatten' - The writeall функция записывает все файлы из входных данных в указанную выходную папку без каких-либо подпапок.
Типы данных: char | string
'FilenamePrefix' - Префикс к имени файлаПрефикс к имени файла, заданный как разделенная разделенными запятой парами, состоящая из 'FilenamePrefix' и вектор символов или строковый скаляр.
writeall функция добавляет указанный префикс к именам выходных файлов. Например, этот код добавляет текущую дату в начало всех имен выходных файлов из datastore:
prefixText = string(datetime('today')) writeall(imds,'C:\myFolder','FilenamePrefix',prefixText);
Типы данных: char | string
'FilenameSuffix' - Суффикс к имени файлаСуффикс к имени файла, заданный как разделенная разделенными запятой парами, состоящая из 'FilenameSuffix' и вектор символов или строковый скаляр.
writeall функция добавляет указанный суффикс к выходу именам файлов. Для примера этот код добавляет описательный текст 'jpeg_70per' в конец всех имен выходных файлов из datastore:
writeall(imds,'C:\myFolder','FilenameSuffix','jpeg_70per');
Типы данных: char | string
'UseParallel' - Индикатор для параллельной записиfalse (по умолчанию) | true | 0 | 1Индикатор для записи параллельно, заданный как разделенная разделенными запятой парами, состоящая из 'UseParallel' и любой из них false или true (0 или 1).
По умолчанию writeall записывает последовательно. Если вы задаете UseParallel на true, затем writeall разделяет операции записи на отдельные группы и запускает группы параллельно, если:
Установлен Parallel Computing Toolbox™.
Открытый параллельный пул существует или автоматическое создание пула включено в параметрах Parallel Preferences.
В противном случае, writeall записывает последовательно независимо от значения для UseParallel.
writeall не поддерживает запись параллельно через локальные потоки.
Примечание
Параллельная запись не поддерживается для CombinedDatastore объекты или хранилища данных, получающиеся из transform применяется к CombinedDatastore.
Типы данных: logical
'WriteFcn' - Пользовательская функция записиПользовательская функция записи, заданная как разделенная разделенными запятой парами, состоящая из 'WriteFcn' и указатель на функцию. Указанная функция отвечает за создание файлов выхода.
Можно использовать 'WriteFcn' аргумент пары "имя-значение" для записи данных в различные форматы, даже если writeall не поддерживает непосредственно выход.
Пользовательская функция записи должна принимать как минимум три входных параметров, data, writeInfo, и outputType:
function myWriteFcn(data,writeInfo,outputType)data содержит выходы read метод, работающий на datastore.
writeInfo является объектом типа matlab.io.datastore.WriteInfo с полями, перечисленными в таблице.
| Область | Описание | Напечатать |
|---|---|---|
ReadInfo | Второй выход read метод | struct |
SuggestedOutputName | Полное, глобально уникальное имя файла, соответствующее требованиям к местоположению и именованию | string |
Location | Аргумент местоположения передан в datastore write | string |
outputType - выход, в который необходимо записать, например "txt" или "csv".
Функция записи, которая записывает файлы паркета из datastore, является:
function myParquetWriteFcn(data, writeInfo, outputType) if strcmp(outputType,"parquet") parquetwrite(writeInfo.SuggestedOutputName,data) end end
myParquetWriteFcn как функция записи для datastore ds, используйте следующие команды:ds = parquetDatastore(location); outputLocation = 'C:/tmp/MyData'; writeall(ds,outputLocation,'WriteFcn',@myParquetWriteFcn);
Типы данных: function_handle
jpeg или jpg Выход'Quality' - Качество JPEG-сжатого файла75 (по умолчанию) | скаляром в области значений [0,100]Качество файла со сжатием JPEG, заданное как разделенная разделенными запятой парами, состоящая из 'Quality' и скаляр в области значений [0,100], где 0 является более низким качеством и более высоким сжатием, а 100 является более высоким качеством и более низким сжатием.
Пример: 'Quality',25
wav или flac Выход'BitsPerSample' - Количество выходных бит на выборку16 (по умолчанию) | 8 | 24 | 32 | 64Количество выхода бит на образец, заданное как разделенная запятой пара, состоящее из 'BitsPerSample' и 8, 16, 24, 32, или 64.
Для файлов FLAC только 8, 16, или 24 поддерживаются биты на каждую выборку.
Пример: 'BitsPerSample',32
mp4 или m4a Выход'BitRate' - Килобиты в секунду (кбит/с)Количество килобитов в секунду (кбит/с), используемых для сжатого аудио файлов, задается как разделенная запятой пара, состоящая из 'BitRate' и 64, 96, 128, 160, 192, 256, или 320. В Windows® 7 или более поздней версии, единственными допустимыми значениями являются: 96, 128, 160, и 192.
В целом, большая BitRate Значение результатов в более высоком качестве сжатия.
Пример: 'BitRate',96
txt или csv Выход'WriteVariableNames' - Индикатор записи имен переменных в виде заголовков столбцаtrue (по умолчанию) | falseИндикатор записи имен переменных в качестве заголовков столбца, заданный как разделенная разделенными запятой парами, состоящая из 'WriteVariableNames' и любой из них true или false.
Индикатор | Поведение |
|---|---|
| Функция записи включает имена переменных в качестве заголовков столбца выхода. Это поведение по умолчанию. |
| Функция записи не включает имена переменных в выход. |
'Delimiter' - Символ разделителя полейСимвол разделителя полей, заданный как разделенная разделенными запятой парами, состоящая из 'Delimiter' и вектор символов или строковый скаляр, содержащий один из следующих спецификаторов:
Спецификатор | Разделитель полей |
|---|---|
| Запятая. Это поведение по умолчанию. |
| Пространство |
| Вкладка |
| Точка с запятой |
| Вертикальный брус |
Можно использовать 'Delimiter' Пара "имя-значение" только для текстовых файлов с разделителями.
Пример: 'Delimiter','space'
Типы данных: char | string
'Encoding' - Схема кодирования символов'system' (по умолчанию) | 'UTF-8' | 'ISO-8859-1' | 'windows-1251' | 'windows-1252' | ...Схема кодирования символов, сопоставленная с файлом, задается как разделенная разделенными запятой парами, состоящая из 'Encoding' и 'system' или стандартное имя схемы кодирования символов, подобное одному из значений в этой таблице. Когда вы не задаете ни одну кодировку или не задаете кодировку следующим 'system'функция записи использует кодировку по умолчанию системы для записи файла.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
Пример: 'UTF-8'
Типы данных: char | string
'QuoteStrings' - Индикатор для записи цитируемого текстаfalse (по умолчанию) | trueИндикатор записи цитируемого текста, заданный как разделенная разделенными запятой парами, состоящая из 'QuoteStrings' и любой из них false или true. Если 'QuoteStrings' является true, затем функция записи заключает текст в двойные кавычки и заменяет любые символы с двойной кавычкой, которые появляются как часть этого текста, два символов с двойной кавычкой.
Можно использовать 'QuoteStrings' Пара "имя-значение" только с разделителями текстовых файлов.
xls или xlsx Выход'Sheet' - Лист для записи вЛист для записи, заданный как разделенная разделенными запятой парами, состоящая из 'Sheet' и вектор символов или строковый скаляр, содержащий имя листа или положительное целое число, указывающее индекс листа. Имя листа не может содержать двоеточие (:). Для определения имен листов в файле электронной таблицы используйте sheets = sheetnames(filename). Для получения дополнительной информации см. sheetnames.
Укажите лист для записи по имени или индексу:
name - Если заданное имя листа не существует в файле, функция записи добавляет новый лист в конец набора листов.
индекс - если заданный индекс листа является индексом, большим, чем количество листов, то функция записи добавляет пустые листы, пока количество листов в книге не равняется индексу листа. Функция записи также генерирует предупреждение, указывающее, что она добавила новый лист.
Можно использовать 'Sheet' Пара "имя-значение" только с файлами электронной таблицы.
Пример: 'Sheet', 2
Пример: 'Sheet', 'MySheetName'
Типы данных: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Чтобы запустить параллельно, установите 'UseParallel' опция для true.
Для получения дополнительной общей информации о параллельных вычислениях смотрите Запуск функций MATLAB с поддержкой автоматических параллелей (Parallel Computing Toolbox).
imageDatastore | parquetDatastore | spreadsheetDatastore | tabularTextDatastore | write | audioDatastore (Audio Toolbox)
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.