Запись хранилища данных в файлы
writeall( записывает данные из хранилища входных данных ds,outputLocation)ds для вывода файлов в расположение, указанное в outputLocation. Количество выходных файлов совпадает с количеством файлов, на которые ссылается хранилище данных.
writeall( записывает данные с дополнительными параметрами, заданными одним или несколькими аргументами пары имя-значение. Например, можно указать ds,outputLocation,Name,Value)'OutputType' и расширение файла, например 'csv' для указания типа файлов, writeall создает.
Запишите хранилище данных на диск, а затем создайте новое хранилище данных для записанных файлов. Этот процесс полезен для сохранения работы или совместного использования хранилища данных с коллегой.
Создание хранилища данных для airlinesmall.csv набор данных, обработка 'NA' значения как отсутствующие данные. Выберите только Year, Month, и Carrier переменные.
ds = datastore('airlinesmall.csv'); ds.TreatAsMissing = 'NA'; ds.SelectedVariableNames = {'Month','Year','UniqueCarrier'};
Предварительный просмотр хранилища данных.
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'}
Сохранить это хранилище данных в новой папке с именем ExampleData на C:\ диск. (Можно указать другое место записи, особенно если вы не используете компьютер Windows ®.) Определить'FolderLayout' как 'flatten' для размещения файлов хранилища данных непосредственно в целевой папке без создания вложенных папок.
location = 'C:\ExampleData'; writeall(ds,location,'Folderlayout','flatten')
Ясно ds из рабочего каталога. Чтобы восстановить хранилище данных с диска, создайте новое хранилище данных, которое ссылается на ту же папку, в которую были записаны данные.
clear ds
ds2 = datastore(location);При записи хранилища данных в файлы можно выбрать дублирование или распрямление структуры папок, задав 'FolderLayout' параметр. Создайте хранилище данных образа из местоположения ввода, а затем запишите его в файлы. Затем запишите файлы в месте вывода, продублировав макет папки. Наконец, запишите файлы в виде плоского списка в расположение вывода.
Создание хранилища данных образа из расположения 'C:\input\', который содержит некоторые изображения вагонов и поездов:

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

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

Дополнительные сведения см. в разделе Компоновка папки.
Вы можете использовать FilenamePrefix и FilenameSuffix параметры для добавления текста в начало или конец имен выходных файлов. Создайте хранилище данных изображения из расположения ввода. Запишите хранилище данных в файлы и добавьте текст в начало имен файлов. Затем снова запишите хранилище данных и добавьте текст в конец имен файлов.
Создание хранилища данных образа из расположения '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 - Хранилище входных данныхХранилище входных данных. Эти хранилища данных можно использовать в качестве входных данных для writeall:
AudioDatastore (Панель звуковых инструментов)
Вы также можете использовать эти хранилища данных с 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' и вектор символов или строковый скаляр.
На основе типа входного хранилища данных dsвыберите одно из этих значений для выходных файлов. Можно выбрать любой табличный формат вывода для любого из перечисленных ниже табличных хранилищ данных.
Хранилище входных данных | Формат вывода |
|---|---|
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'- writeall функция реплицирует структуру папки, содержащуюся в расположении входных данных, в указанное расположение вывода. Местоположение входных данных содержит Folders свойство входного хранилища данных.
'flatten'- writeall функция записывает все файлы из входных данных в указанную папку вывода без вложенных папок.
Типы данных: char | string
'FilenamePrefix' - Префикс к имени файлаПрефикс к имени файла, заданному как разделенная запятыми пара, состоящая из 'FilenamePrefix' и вектор символов или строковый скаляр.
writeall добавляет указанный префикс к именам выходных файлов. Например, этот код добавляет текущую дату к началу всех имен выходных файлов из хранилища данных:
prefixText = string(datetime('today')) writeall(imds,'C:\myFolder','FilenamePrefix',prefixText);
Типы данных: char | string
'FilenameSuffix' - суффикс к имени файлаСуффикс к имени файла, указанный как разделенная запятыми пара, состоящая из 'FilenameSuffix' и вектор символов или строковый скаляр.
writeall функция добавляет указанный суффикс к именам выходных файлов. Например, этот код добавляет описательный текст 'jpeg_70per' до конца всех имен выходных файлов из хранилища данных:
writeall(imds,'C:\myFolder','FilenameSuffix','jpeg_70per');
Типы данных: char | string
'UseParallel' - Индикатор для параллельной записиfalse (по умолчанию) | true | 0 | 1Индикатор для параллельной записи, определяемый как разделенная запятыми пара, состоящая из 'UseParallel' и либо false или true (0 или 1).
По умолчанию writeall записывает в последовательном формате. Если установить UseParallel кому true, то writeall разделяет операции записи на отдельные группы и выполняет группы параллельно, если:
Установлен Toolbox™ параллельных вычислений.
Существует открытый параллельный пул или включено автоматическое создание пула в окне Настройки параллельного пула (Parallel Preferences).
В противном случае writeall записывает в последовательном формате независимо от значения для UseParallel.
writeall не поддерживает параллельную запись через локальные потоки.
Примечание
Параллельная запись не поддерживается для CombinedDatastore объекты или хранилища данных, являющиеся результатом transform применено к CombinedDatastore.
Типы данных: logical
'WriteFcn' - Пользовательская функция записиПользовательская функция записи, заданная как разделенная запятыми пара, состоящая из 'WriteFcn' и дескриптор функции. Указанная функция отвечает за создание выходных файлов.
Вы можете использовать 'WriteFcn' аргумент пары имя-значение для записи данных в различных форматах, даже если writeall не поддерживает формат вывода напрямую.
Пользовательская функция записи должна принимать не менее трех входных аргументов, data, writeInfo, и outputType:
function myWriteFcn(data,writeInfo,outputType)data содержит выходные данные read способ работы с хранилищем данных.
writeInfo является объектом типа matlab.io.datastore.WriteInfo с полями, перечисленными в таблице.
| Область | Описание | Напечатать |
|---|---|---|
ReadInfo | Второй выход read метод | struct |
SuggestedOutputName | Полное, глобально уникальное имя файла, отвечающее требованиям к расположению и именованию | string |
Location | Аргумент местоположения, переданный для записи в хранилище данных | string |
outputType - выходной формат для записи, например, "txt" или "csv".
Функция записи, которая записывает файлы паркета из хранилища данных:
function myParquetWriteFcn(data, writeInfo, outputType) if strcmp(outputType,"parquet") parquetwrite(writeInfo.SuggestedOutputName,data) end end
myParquetWriteFcn как функция записи для хранилища данных ds, используйте следующие команды:ds = parquetDatastore(location); outputLocation = 'C:/tmp/MyData'; writeall(ds,outputLocation,'WriteFcn',@myParquetWriteFcn);
Типы данных: function_handle
jpeg или jpg Продукция'Quality' - Качество файла, сжатого JPEG75 (по умолчанию) | скаляр в диапазоне [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 - если указанное имя листа не существует в файле, функция записи добавляет новый лист в конце коллекции листов.
index - если указанный индекс листа больше числа листов, функция записи добавляет пустые листы до тех пор, пока число листов в книге не станет равным индексу листа. Функция записи также генерирует предупреждение, указывающее на добавление нового документа.
Вы можете использовать 'Sheet' пара имя-значение только с файлами электронных таблиц.
Пример: 'Sheet',2
Пример: 'Sheet', 'MySheetName'
Типы данных: char | string | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Для параллельного выполнения установите 'UseParallel' опция для true.
Дополнительные общие сведения о параллельных вычислениях см. в разделе Запуск функций MATLAB с автоматической параллельной поддержкой (панель инструментов параллельных вычислений).
imageDatastore | parquetDatastore | spreadsheetDatastore | tabularTextDatastore | write | audioDatastore (Панель звуковых инструментов)
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.