Разделите datastore
Создайте datastore для большого количества файлов. В данном примере используйте десять копий файла примера airlinesmall.csv. Чтобы обработать недостающие поля в табличных данных, задайте пары "имя-значение" TreatAsMissing и MissingValue.
files = repmat({'airlinesmall.csv'},1,10);
ds = tabularTextDatastore(files,...
'TreatAsMissing','NA','MissingValue',0);Разделите datastore в три части и возвратите первый раздел. partition функция возвращает приблизительно первую треть данных из datastore ds.
subds = partition(ds,3,1)
subds =
TabularTextDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\demos\airlinesmall.csv';
' ...\matlab\toolbox\matlab\demos\airlinesmall.csv';
' ...\matlab\toolbox\matlab\demos\airlinesmall.csv'
... and 1 more
}
FileEncoding: 'UTF-8'
AlternateFileSystemRoots: {}
ReadVariableNames: true
VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
Text Format Properties:
NumHeaderLines: 0
Delimiter: ','
RowDelimiter: '\r\n'
TreatAsMissing: 'NA'
MissingValue: 0
Advanced Text Format Properties:
TextscanFormats: {'%f', '%f', '%f' ... and 26 more}
TextType: 'char'
ExponentCharacters: 'eEdD'
CommentStyle: ''
Whitespace: ' \b\t'
MultipleDelimitersAsOne: false
Properties that control the table returned by preview, read, readall:
SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
SelectedFormats: {'%f', '%f', '%f' ... and 26 more}
ReadSize: 20000 rows
Files свойство datastore содержит список файлов, включенных в datastore. Проверяйте количество файлов в Files свойство datastore ds и разделенный datastore subds. Datastore ds содержит десять файлов и раздел subds содержит первые четыре файла.
length(ds.Files)
ans = 10
length(subds.Files)
ans = 4
Создайте datastore из файла примера, mapredout.mat, который является выходным файлом mapreduce функция.
ds = datastore('mapredout.mat');Получите количество по умолчанию разделов для ds.
n = numpartitions(ds);
Разделите datastore в количество по умолчанию разделов и возвратите datastore, соответствующий первому разделу.
subds = partition(ds,n,1);
Считайте данные в subds.
while hasdata(subds) data = read(subds); end
Создайте datastore, который содержит три файлов изображений.
ds = imageDatastore({'street1.jpg','peppers.png','corn.tif'})
ds =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\demos\street1.jpg';
' ...\matlab\toolbox\matlab\imagesci\peppers.png';
' ...\matlab\toolbox\matlab\imagesci\corn.tif'
}
ReadSize: 1
Labels: {}
ReadFcn: @readDatastoreImage
Разделите datastore файлами и возвратите часть, соответствующую второму файлу.
subds = partition(ds,'Files',2)
subds =
ImageDatastore with properties:
Files: {
' ...\matlab\toolbox\matlab\imagesci\peppers.png'
}
ReadSize: 1
Labels: {}
ReadFcn: @readDatastoreImage
subds содержит один файл.
Создайте datastore из файла примера, mapredout.mat, который является выходным файлом mapreduce функция.
ds = datastore('mapredout.mat');Разделите datastore в три части на трех рабочих в параллельном пуле.
numWorkers = 3; p = parpool('local',numWorkers); n = numpartitions(ds,p); parfor ii=1:n subds = partition(ds,n,ii); while hasdata(subds) data = read(subds); end end
ds — Введите datastoreВведите datastore. Можно использовать datastore функция, чтобы создать datastore возражает из ваших данных.
n Количество разделовКоличество разделов в виде положительного целого числа.
Если вы задаете много разделов, который не является числовым фактором количества файлов в datastore, partition поместит каждое из остающихся наблюдений в существующих разделах, начиная с первого раздела.
Количество существующих разделов, которые содержат дополнительное наблюдение, равно остатку, полученному при делении количества файлов в datastore количеством разделов. Например, если ваш объект datastore содержит 23 файла, которые вы хотите разделить в 3 части, первые два раздела что partition создает будет содержать 8 файлов, и последний раздел будет содержать 7 файлов.
Пример 3
Типы данных: double
index — ИндексИндексируйте в виде положительного целого числа.
Пример 1
Типы данных: double
filename FileName Имя файла в виде вектора символов или строкового скаляра.
Значение filename должен совпадать точно с именем файла, содержавшимся в Files свойство datastore. Чтобы гарантировать, что имена файлов соответствуют точно, задайте filename использование ds.Files{N} где N индекс файла в Files свойство. Например, ds.Files{3} задает третий файл в datastore ds.
Пример: ds.Files{3}
Пример: 'file1.csv'
Пример: '../dir/data/file1.csv'
Пример: 'hdfs://myserver:7867/data/file1.txt'
Типы данных: char
subds — Выведите datastoreВыведите datastore. Выходной datastore имеет тот же тип как входной datastore ds.
backgroundPool или ускорьте код с Parallel Computing Toolbox™ ThreadPool.Указания и ограничения по применению:
В основанной на потоке среде можно использовать partition только со следующими хранилищами данных:
ImageDatastore объекты
CombinedDatastore или TransformedDatastore объекты вы создаете из ImageDatastore объекты при помощи combine или transform
Можно использовать partition с другими хранилищами данных, если у вас есть Parallel Computing Toolbox™. Для этого запустите функцию с помощью поддержанного процессом параллельного пула вместо использования backgroundPool или ThreadPool (используйте любой ProcessPool или ClusterPool).
Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.