Datastore для данных в оперативной памяти
Используйте ArrayDatastore
объект управлять datastore, созданным из данных в оперативной памяти. Можно создать ArrayDatastore
объект с помощью arrayDatastore
функционируйте, задайте его свойства, и затем импортируйте и обработайте данные, используя функции объекта.
A
— Входной массивВходной массив в виде матрицы.
ArrayDatastore
свойства описывают формат файлов в объекте datastore и управляют, как данные считаны из datastore. Можно задать значение ArrayDatastore
аргументы пары "имя-значение" использования свойств, когда вы создаете объект datastore. Чтобы просмотреть или изменить свойство после создания объекта, используйте запись через точку.
ReadSize
— Объем данных, чтобы читать
(значение по умолчанию) | положительное целое числоОбъем данных, чтобы читать в вызове read
функция в виде разделенной запятой пары, состоящей из 'ReadSize'
и положительное целое число. Каждый вызов read
читает максимум ReadSize
'Строки' . Если вы задаете значение для 'ReadSize'
это превышает количество строк во входных данных, read
считает все строки в объекте datastore.
Значение по умолчанию 'ReadSize'
1
.
Типы данных: double
IterationDimension
— Размерность, в которой можно читать
(значение по умолчанию) | положительное целое числоРазмерность, в которой можно читать в вызове read
функция в виде разделенной запятой пары, состоящей из 'IterationDimension'
и положительное целое число. Например, 'IterationDimension',2
делает read
возвратите данные в столбцах в объект datastore. Значение по умолчанию 'IterationDimension'
1
, который делает read
возвратите данные в строках..
Если вы задаете значение 'OutputType'
свойство как 'same'
, затем 'IterationDimension'
должен быть установлен в значение 1.
Если вы изменяете значение 'IterationDimension'
после создания вашего ArrayDatastore
объект, MATLAB® сбрасывает datastore к непрочитанному состоянию.
Типы данных: double
OutputType
— Тип выходных данных'cell'
(значение по умолчанию) | 'same'
Выходные данные вводят в виде разделенной запятой пары, состоящей из 'OutputType'
и одно из этих значений:
'cell'
— Возвратите данные как n-1 массив ячеек. Например, если A
числовой массив и ReadSize
3
чтение
возвращает массив ячеек 3 на 1 числовых данных.
'same'
— Возвратите совпадающий тип данных как входной массив A
. Например, если A
числовой массив, read
возвращает числовые массивы.
Значение OutputType
определяет тип данных, возвращенный preview
, read
, и readall
функции.
Если вы изменяете значение 'OutputType'
после создания вашего ArrayDatastore
объект, MATLAB сбрасывает datastore к непрочитанному состоянию.
Типы данных: char |
string
hasdata | Определите, доступны ли данные для чтения |
numpartitions | Количество разделов datastore |
partition | Разделите datastore |
preview | Подмножество предварительного просмотра данных в datastore |
read | Считайте данные в datastore |
readall | Считывайте все данные в datastore |
reset | Сброс Datastore к начальному состоянию |
transform | Преобразуйте datastore |
combine | Объедините данные от нескольких datastores |
shuffle | Переставьте все данные в datastore |
subset | Создайте подмножество datastore или установленный на файл |
Создайте ArrayDatastore
объект из матрицы, затем считайте все данные в datastore.
Создайте матрицу.
A = magic(10)
A = 10×10
92 99 1 8 15 67 74 51 58 40
98 80 7 14 16 73 55 57 64 41
4 81 88 20 22 54 56 63 70 47
85 87 19 21 3 60 62 69 71 28
86 93 25 2 9 61 68 75 52 34
17 24 76 83 90 42 49 26 33 65
23 5 82 89 91 48 30 32 39 66
79 6 13 95 97 29 31 38 45 72
10 12 94 96 78 35 37 44 46 53
11 18 100 77 84 36 43 50 27 59
Создайте ArrayDatastore
объект из матрицы.
arrds = arrayDatastore(A)
arrds = ArrayDatastore with properties: ReadSize: 1 IterationDimension: 1 OutputType: "cell"
Считайте все данные в datastore.
readall(arrds)
ans=10×1 cell array
{1x10 double}
{1x10 double}
{1x10 double}
{1x10 double}
{1x10 double}
{1x10 double}
{1x10 double}
{1x10 double}
{1x10 double}
{1x10 double}
Возвратите совпадающие типы данных как входной массив вместо того, чтобы возвратить данные как n-1 массив ячеек.
Составьте таблицу из файла электронной таблицы counties.xlsx
. Импортируйте все строки от пятого до десятых столбцов в электронной таблице.
T = readtable("counties.xlsx","Range",[1,5,67,10])
T=66×6 table
CountyName State StateName Population2010 HousingUnits2010 LandArea
_______________________ ______ _______________ ______________ ________________ __________
{'Fairfield County' } {'CT'} {'Connecticut'} 9.1683e+05 3.6122e+05 1.6185e+09
{'Hartford County' } {'CT'} {'Connecticut'} 8.9401e+05 3.7425e+05 1.9039e+09
{'Litchfield County' } {'CT'} {'Connecticut'} 1.8993e+05 87550 2.3842e+09
{'Middlesex County' } {'CT'} {'Connecticut'} 1.6568e+05 74837 9.5649e+08
{'New Haven County' } {'CT'} {'Connecticut'} 8.6248e+05 3.62e+05 1.5657e+09
{'New London County' } {'CT'} {'Connecticut'} 2.7406e+05 1.2099e+05 1.722e+09
{'Tolland County' } {'CT'} {'Connecticut'} 1.5269e+05 57963 1.0624e+09
{'Windham County' } {'CT'} {'Connecticut'} 1.1843e+05 49073 1.3284e+09
{'Androscoggin County'} {'ME'} {'Maine' } 1.077e+05 49090 1.2119e+09
{'Aroostook County' } {'ME'} {'Maine' } 71870 39529 1.7279e+10
{'Cumberland County' } {'ME'} {'Maine' } 2.8167e+05 1.3866e+05 2.1633e+09
{'Franklin County' } {'ME'} {'Maine' } 30768 21709 4.3942e+09
{'Hancock County' } {'ME'} {'Maine' } 54418 40184 4.11e+09
{'Kennebec County' } {'ME'} {'Maine' } 1.2215e+05 60972 2.2469e+09
{'Knox County' } {'ME'} {'Maine' } 39736 23744 9.4569e+08
{'Lincoln County' } {'ME'} {'Maine' } 34457 23493 1.1806e+09
⋮
Создайте datastore из таблицы. Установите 'OutputType'
к 'same'
возвратить совпадающие типы данных как входную таблицу.
arrds = arrayDatastore(T,"OutputType","same")
arrds = ArrayDatastore with properties: ReadSize: 1 IterationDimension: 1 OutputType: "same"
Предварительно просмотрите данные в datastore.
preview(arrds)
ans=8×6 table
CountyName State StateName Population2010 HousingUnits2010 LandArea
_____________________ ______ _______________ ______________ ________________ __________
{'Fairfield County' } {'CT'} {'Connecticut'} 9.1683e+05 3.6122e+05 1.6185e+09
{'Hartford County' } {'CT'} {'Connecticut'} 8.9401e+05 3.7425e+05 1.9039e+09
{'Litchfield County'} {'CT'} {'Connecticut'} 1.8993e+05 87550 2.3842e+09
{'Middlesex County' } {'CT'} {'Connecticut'} 1.6568e+05 74837 9.5649e+08
{'New Haven County' } {'CT'} {'Connecticut'} 8.6248e+05 3.62e+05 1.5657e+09
{'New London County'} {'CT'} {'Connecticut'} 2.7406e+05 1.2099e+05 1.722e+09
{'Tolland County' } {'CT'} {'Connecticut'} 1.5269e+05 57963 1.0624e+09
{'Windham County' } {'CT'} {'Connecticut'} 1.1843e+05 49073 1.3284e+09
Создайте datastore для переменной MAT-файла, и затем считайте данные из файла с различным ReadSize
значения.
Загрузите MAT-файл BostonWeatherData.mat
в рабочую область.
load 'BostonWeatherData.mat'
Создайте datastore для weatherData
переменная. Установите ReadSize
к 10
'Строки' . Значение ReadSize
определяет, сколько строк данных читается из datastore с каждым вызовом read
функция. Установите 'OutputType'
к 'same'
возвратить совпадающие типы данных как входной массив.
arrds = arrayDatastore(weatherData,"ReadSize",10, "OutputType","same")
arrds = ArrayDatastore with properties: ReadSize: 10 IterationDimension: 1 OutputType: "same"
Считайте данные из datastore.
data1 = read(arrds)
data1=10×3 timetable
Time TemperatureF Humidity Events
___________ ____________ ________ ____________
01-Jul-2015 72 78 Thunderstorm
02-Jul-2015 72 60 None
03-Jul-2015 70 56 None
04-Jul-2015 67 75 None
05-Jul-2015 72 67 None
06-Jul-2015 74 69 None
07-Jul-2015 75 77 Rain
08-Jul-2015 79 68 Rain
09-Jul-2015 66 77 Rain
10-Jul-2015 69 74 Rain
Установите ReadSize
значение свойства к 30
и читайте из datastore. Второй вызов read
функционируйте читает следующие 30 строк из datastore.
arrds.ReadSize = 30;
Считайте данные из datastore.
data2 = read(arrds)
data2=30×3 timetable
Time TemperatureF Humidity Events
___________ ____________ ________ ______
11-Jul-2015 76 49 None
12-Jul-2015 81 54 None
13-Jul-2015 72 81 None
14-Jul-2015 74 72 Rain
15-Jul-2015 75 87 Rain
16-Jul-2015 64 65 None
17-Jul-2015 68 72 None
18-Jul-2015 71 81 Rain
19-Jul-2015 81 73 Rain
20-Jul-2015 81 62 None
21-Jul-2015 76 66 None
22-Jul-2015 77 58 None
23-Jul-2015 75 52 None
24-Jul-2015 74 60 Rain
25-Jul-2015 66 81 None
26-Jul-2015 71 79 Rain
⋮
Можно выбрать размерность, в которой можно читать из ArrayDatastore
. Например, можно считать системы координат видео, данные которого хранятся в ArrayDatastore
путем чтения по четвертому измерению.
Загрузите видеоданные. Создайте VideoReader
объект из файла xylophone.mp4
.
v = VideoReader('xylophone.mp4');
Считайте все видеокадры из VideoReader
объект в рабочую область.
allFrames = read(v);
Создайте datastore из систем координат, которые вы читаете. Установите 'IterationDimension'
к 4
считывать данные по его четвертому измерению. Установите 'OutputType'
к 'cell'
возвратить данные как массив ячеек. Установите 'ReadSize'
к 4, чтобы считать четыре видеокадра в каждом вызове read
функция.
arrds = arrayDatastore(allFrames,"IterationDimension",4,"OutputType","cell","ReadSize",4)
arrds = ArrayDatastore with properties: ReadSize: 4 IterationDimension: 4 OutputType: "cell"
Считайте и отобразите первые четыре видеокадра в datastore как прямоугольное мозаичное изображение.
frames = read(arrds); imout = imtile(frames); imshow(imout)
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.