Хранилище данных для данных в памяти
Использовать ArrayDatastore объект для управления хранилищем данных, созданным из данных в памяти. Можно создать ArrayDatastore с использованием arrayDatastore укажите его свойства, а затем импортируйте и обрабатывайте данные с помощью объектных функций.
A - Входной массивВходной массив, заданный как матрица.
ArrayDatastore свойства описывают формат данных в памяти в объекте хранилища данных и управляют тем, как данные считываются из хранилища данных. Можно указать значение ArrayDatastore с использованием аргументов пары «имя-значение» при создании объекта хранилища данных. Чтобы просмотреть или изменить свойство после создания объекта, используйте точечную нотацию.
ReadSize - Объем читаемых данных1 (по умолчанию) | положительное целое числоОбъем данных для чтения при вызове read функция, указанная как разделенная запятыми пара, состоящая из 'ReadSize' и положительное целое число. Каждый вызов для read считывает максимум ReadSize строк. Если указано значение для 'ReadSize' превышает количество строк во входных данных, read будет считывать все строки в объекте хранилища данных.
Значение по умолчанию 'ReadSize' является 1.
Типы данных: double
IterationDimension - Измерение, в котором следует читать1 (по умолчанию) | положительное целое числоИзмерение, в котором следует прочитать в вызове read функция, указанная как разделенная запятыми пара, состоящая из 'IterationDimension' и положительное целое число. Например, 'IterationDimension',2 делает read возвращает данные, ориентированные на столбцы, из объекта хранилища данных. Значение по умолчанию 'IterationDimension' является 1, что делает read возвращаемые данные, ориентированные на строки..
Если указано значение 'OutputType' свойство как 'same', то 'IterationDimension' должно быть установлено значение 1.
При изменении значения 'IterationDimension' после создания ArrayDatastore объект MATLAB ® переводит хранилище данных в непрочитанное состояние.
Типы данных: double
OutputType - Тип выходных данных'cell' (по умолчанию) | 'same'Тип выходных данных, указанный как разделенная запятыми пара, состоящая из 'OutputType' и одно из этих значений:
'cell' - Возвращает данные в виде массива ячеек n-by-1. Например, если A является числовым массивом и ReadSize является 3, read возвращает массив ячеек с числовыми данными 3 на 1.
'same' - Возвращает тот же тип данных, что и входной массив A. Например, если A - числовой массив, read возвращает числовые массивы.
Значение OutputType определяет тип данных, возвращаемый preview, read, и readall функции.
При изменении значения 'OutputType' после создания ArrayDatastore объект MATLAB переводит хранилище данных в непрочитанное состояние.
Типы данных: char | string
hasdata | Определение доступности данных для чтения |
numpartitions | Количество разделов хранилища данных |
partition | Разбиение хранилища данных на разделы |
preview | Предварительный просмотр подмножества данных в хранилище данных |
read | Считывание данных в хранилище данных |
readall | Считывание всех данных в хранилище данных |
reset | Сброс хранилища данных в исходное состояние |
transform | Преобразовать хранилище данных |
combine | Объединение данных из нескольких хранилищ данных |
shuffle | Перетасовка всех данных в хранилище данных |
subset | Создание подмножества хранилища данных или набора файлов |
Создание ArrayDatastore объект из матрицы, затем считывает все данные из хранилища данных.
Создайте матрицу.
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"
Прочтите все данные в хранилище данных.
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-by-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
⋮
Создайте хранилище данных из таблицы. Набор 'OutputType' кому 'same' для возврата тех же типов данных, что и входная таблица.
arrds = arrayDatastore(T,"OutputType","same")
arrds =
ArrayDatastore with properties:
ReadSize: 1
IterationDimension: 1
OutputType: "same"
Предварительный просмотр данных в хранилище данных.
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
Создание хранилища данных для переменной MAT-файла, а затем чтение данных из файла с различными ReadSize значения.
Загрузка файла MAT BostonWeatherData.mat в рабочую область.
load 'BostonWeatherData.mat'Создание хранилища данных для weatherData переменная. Набор ReadSize кому 10 строк. Значение ReadSize определяет, сколько строк данных считывается из хранилища данных при каждом вызове read функция. Набор 'OutputType' кому 'same' для возврата тех же типов данных, что и входной массив.
arrds = arrayDatastore(weatherData,"ReadSize",10, "OutputType","same")
arrds =
ArrayDatastore with properties:
ReadSize: 10
IterationDimension: 1
OutputType: "same"
Считывание данных из хранилища данных.
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 и чтение из хранилища данных. Второй вызов read функция считывает следующие 30 строк из хранилища данных.
arrds.ReadSize = 30;
Считывание данных из хранилища данных.
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);
Создайте хранилище данных из прочитанных кадров. Набор '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"
Считывание и отображение первых четырех видеокадров в хранилище данных в виде прямоугольного мозаичного изображения.
frames = read(arrds); imout = imtile(frames); imshow(imout)

Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.