Datastore для данных в памяти
Использование ArrayDatastore
объект для управления datastore, созданной из данных в памяти. Можно создать ArrayDatastore
объект с использованием arrayDatastore
function, задайте его свойства, а затем импортируйте и обрабатывайте данные с помощью функций object.
A
- Входной массивВходной массив, заданный как матрица.
ArrayDatastore
свойства описывают формат данных в памяти в объекте datastore и управляют чтением данных из datastore. Можно задать значение ArrayDatastore
свойства с использованием аргументов пары "имя-значение" при создании объекта datastore. Чтобы просмотреть или изменить свойство после создания объекта, используйте запись через точку.
ReadSize
- Объем считываемых данных1
(по умолчанию) | положительное целое числоОбъем данных для чтения в вызове на read
функция, заданная как разделенная разделенными запятой парами, состоящая из 'ReadSize'
и положительное целое число. Каждый вызов для read
считывает максимум ReadSize
строки. Если вы задаете значение для 'ReadSize'
что превышает количество строк во входных данных, read
считывает все строки в объекте datastore.
Значение по умолчанию 'ReadSize'
является 1
.
Типы данных: double
IterationDimension
- Размерность, в которой можно считать1
(по умолчанию) | положительное целое числоРазмерность, в котором можно считать в вызове 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
, read
возвращает массив ячеек 3 на 1 с числовыми данными.
'same'
- Возвращает тот совпадающий тип данных, что и входной массив A
. Для примера, если A является числовым массивом,
read
возвращает числовые массивы.
Значение OutputType
определяет тип данных, возвращаемых preview
, read
, и readall
функций.
Если вы изменяете значение 'OutputType'
после создания ArrayDatastore
Объект устанавливает хранилище datastore в непрочитанное состояние.
Типы данных: char
| string
hasdata | Определите, доступны ли данные для чтения |
numpartitions | Количество разделов datastore |
partition | Раздел datastore |
preview | Предварительный просмотр подмножества данных в datastore |
read | Чтение данных в datastore |
readall | Чтение всех данных в datastore |
reset | Сбросьте datastore в начальное состояние |
transform | Преобразуйте datastore |
combine | Объедините данные из нескольких хранилищ данных |
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
{[ 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]}
Верните те совпадающие типы данных, что и входной массив, вместо возврата данных в виде массива ячеек 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.