主要内容

arrayDatastore

数据存储在内存中的数据

自从R2020b

描述

使用一个ArrayDatastore从内存中数据对象创建一个数据存储管理。您可以创建一个ArrayDatastore对象使用arrayDatastore函数,指定它的属性,然后导入使用对象和过程数据的功能。

创建

描述

例子

arrds= arrayDatastore (一个)创建一个数据存储arrds从数组中一个存储在内存中。

例子

arrds= arrayDatastore (一个,名称,值)指定额外的参数和属性arrds使用一个或多个名称-值对参数。例如,指定每个调用通过调用函数读取三行数据arrds = arrayDatastore(数据、“ReadSize”3)

输入参数

全部展开

输入数组,指定为一个矩阵。

属性

全部展开

ArrayDatastore属性描述内存数据的格式在数据存储对象和控制如何从数据库读取数据。您可以指定的值ArrayDatastore当您创建属性使用名称-值对参数数据存储对象。查看或修改属性在创建对象时,使用点符号。

读取的数据量在一个调用函数,指定为逗号分隔组成的“ReadSize”和一个正整数。每次调用读最多ReadSize行。如果你指定一个值“ReadSize”超过输入数据的行数,将读取的所有行数据存储对象。

的默认值“ReadSize”1

数据类型:

维度中读一个调用函数,指定为逗号分隔组成的“IterationDimension”和一个正整数。例如,“IterationDimension”, 2使返回用于数据存储的数据对象。的默认值“IterationDimension”1,这使得返回row-oriented数据. .

如果指定的值“OutputType”财产“相同”,然后“IterationDimension”必须设置为值为1。

如果你修改的值“IterationDimension”在创建你的ArrayDatastore对象,MATLAB®重置数据存储到一个未读状态。

数据类型:

输出数据类型指定为逗号分隔组成的“OutputType”这些值之一:

  • “细胞”——返回数据作为一个n×1单元阵列。例如,如果一个是一个数值型数组和ReadSize3,返回一个3×1单元阵列的数字数据。

  • “相同”——返回相同的数据类型作为输入数组一个。例如,如果一个是一个数值数组,返回数字数组。

的价值OutputType确定返回的数据类型预览,,readall功能。

如果你修改的值“OutputType”在创建你的ArrayDatastore对象,MATLAB重置数据存储到一个未读状态。

数据类型:字符|字符串

对象的功能

hasdata 确定数据可用来读
numpartitions 数量的数据存储分区
分区 分区数据存储
预览 预览数据存储中数据的子集
在数据存储中读取数据
readall 读取所有数据存储中的数据
重置 数据存储重置为初始状态
变换 变换数据存储
结合 合并来自多个数据存储的数据
洗牌 洗牌在数据存储的所有数据
子集 创建数据存储或文件集的子集

例子

全部折叠

创建一个ArrayDatastore对象从一个矩阵,然后读取所有数据存储中的数据。

创建一个矩阵。

=魔法(10)
一个=10×1092 99 8 67 74 51 58 40 98 80 7 73 55 57 64 16 41 4 81 88 70 22 54 56 63 47 60 62 69 71 85 87 19 21 28 86 93 25 2 9 61 68 24 76 83 90 75 52 34 17 42 49 26 33 65 23 48 32 39 66 79 82 89 91 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属性:ReadSize: 1 IterationDimension: 1 OutputType:“细胞”

读取数据存储的所有数据。

readall (arrds)
ans =10×1单元阵列{[92 99 74 8 15 67 51 58 40]}{[98 80 7 14 16 73 55 57 64 41]}{[4 81 88 70 22 54 56 63 47]}{[60 62 69 71 85 87 19 21 28]}{[25 86 93 2 9 61 68 75 52 34]}{[17 24 76 83 90 42 49 26 33 65]}{[23 5 82 89 91 48 66 32 39]}{[79 13 95 97 72年29日31日38 45]}{[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”,“范围”67年,[1,5日,10])
T =66×6表CountyName状态StateName Population2010 HousingUnits2010 LandArea _______________________ ___________ __________ ______售予* * *{“费尔菲尔德县”}{CT的}{“康涅狄格”}9.1683 e + 05年3.6122 1.6185 e + e + 05年09年{“哈特福德郡”}{CT的}{“康涅狄格”}8.9401 e + 05年3.7425 1.9039 e + e + 05年09年{Litchfield县的}{CT的}{“康涅狄格”}1.8993 e + 05 87550 2.3842 e + 09年{米德尔塞克斯郡的}{CT的}{“康涅狄格”}74837 9.5649 e + 08年1.6568 e + 05{“纽黑文县”}{CT的}{“康涅狄格”}8.6248 e + 05年3.62 1.5657 e + e + 05年09年{“新伦敦郡”}{CT的}{“康涅狄格”}2.7406 e + 05年1.2099 1.722 e + e + 05年09年{Tolland县的}{CT的}{“康涅狄格”}1.5269 e + 05 57963 1.0624 e + 09年{“温德姆县”}{CT的}{“康涅狄格”}1.1843 e + 05 49073 1.3284 e + 09年{Androscoggin县的}{‘我’}{“缅因”}1.077 e + 05 49090 1.2119 e + 09年{阿鲁斯托克县的}{‘我’}{“缅因”}71870 39529 1.7279 e + 10{“坎伯兰县”}{‘我’}{“缅因”}2.8167 e + 05年1.3866 2.1633 e + e + 05年09年{富兰克林县的}{‘我’}{“缅因”}30768 21709 4.3942 e + 09年{“汉考克县”}{‘我’}{“缅因”}54418 40184 4.11 e + 09年{“肯纳贝克河县”}{‘我’}{“缅因”}1.2215 e + 05 60972 2.2469 e + 09年{“诺克斯县”}{‘我’}{“缅因”}39736 23744 9.4569 e + 08年{林肯郡的}{‘我’}{“缅因”}34457 23493 1.1806 e + 09⋮

从表中创建一个数据存储。集“OutputType”“相同”返回相同的数据类型作为输入表。

arrds = arrayDatastore (T)“OutputType”,“相同”)
arrds = ArrayDatastore属性:ReadSize: 1 IterationDimension: 1 OutputType:“相同”

预览数据存储中的数据。

预览(arrds)
ans =8×6表CountyName状态StateName Population2010 HousingUnits2010 LandArea _____________________ ___________ __________ ______售予* * *{“费尔菲尔德县”}{CT的}{“康涅狄格”}9.1683 e + 05年3.6122 1.6185 e + e + 05年09年{“哈特福德郡”}{CT的}{“康涅狄格”}8.9401 e + 05年3.7425 1.9039 e + e + 05年09年{Litchfield县的}{CT的}{“康涅狄格”}1.8993 e + 05 87550 2.3842 e + 09年{米德尔塞克斯郡的}{CT的}{“康涅狄格”}74837 9.5649 e + 08年1.6568 e + 05{“纽黑文县”}{CT的}{“康涅狄格”}8.6248 e + 05年3.62 1.5657 e + e + 05年09年{“新伦敦郡”}{CT的}{“康涅狄格”}2.7406 e + 05年1.2099 1.722 e + e + 05年09年{Tolland县的}{CT的}{“康涅狄格”}1.5269 e + 05 57963 1.0624 e + 09年{“温德姆县”}{CT的}{“康涅狄格”}1.1843 e + 05 49073 1.3284 e + 09年

为MAT-file变量创建一个数据存储,然后从文件读取数据不同ReadSize值。

加载MAT-fileBostonWeatherData.mat进入工作区。

负载“BostonWeatherData.mat”

创建一个数据存储weatherData变量。集ReadSize10行。的价值ReadSize确定有多少行数据从数据存储和读取每个调用函数。集“OutputType”“相同”返回相同的数据类型作为输入数组。

arrds = arrayDatastore (weatherData,“ReadSize”10“OutputType”,“相同”)
arrds = ArrayDatastore属性:ReadSize: 10 IterationDimension: 1 OutputType:“相同”

从数据库读取数据。

data1 =阅读(arrds)
data1 =10×3的时间表时间TemperatureF湿度事件___________ _______ ________ _______ 01 - 72年7月- 2015年78雷暴02 - 72年7月- 2015年60没有03 - 70年7月- 2015年56没有04—05 75没有67年7月- 2015 - 7 - 2015 72 67没有06 - 69没有74年7月- 2015年07 - 77雨08年75年7月- 2015年7月- 2015年79年68年雨09 - 66年7月- 2015年77雨74年10 - 69年7月- 2015下雨

设置ReadSize属性值对30.从数据存储和读取。第二个调用函数从数据存储中读取下一个30行。

arrds。ReadSize = 30;

从数据库读取数据。

data2 =阅读(arrds)
data2 =30×3的时间表时间TemperatureF湿度事件___________ _______ ________ ________ 11 - 76年7月- 2015年49没有12 - 81年7月- 2015年54没有13 - 7月2015 72 81没有14 - 7月2015 74 72雨15 - 87雨16 - 75年7月- 2015年7月- 2015年64年65年没有一个17 - 7月2015 68 72没有18 - 7月2015 71 81下雨19 - 7月2015 81 73 20 - 81年7月- 2015年62没有21 - 7月2015 76 66 22 - 77年7月- 2015年58没有23 - 75年7月- 2015年52没有24 - 60雨25 74年7月- 2015年7月- 2015年66年81年都没有⋮26 - 7月2015 71 79下雨

您可以选择阅读从一个维度ArrayDatastore。例如,您可以阅读一段视频的帧的数据是存储在一个ArrayDatastore通过阅读以及第四维。

加载视频数据。创建一个VideoReader对象从文件xylophone.mp4

v = VideoReader (“xylophone.mp4”);

阅读所有的视频帧VideoReader对象到工作区中。

allFrames =阅读(v);

创建一个数据存储从帧你读。集“IterationDimension”4读取数据在第四维度。集“OutputType”“细胞”返回的数据单元阵列。集“ReadSize”4阅读四个视频帧中每个调用函数。

arrds = arrayDatastore (allFrames,“IterationDimension”4“OutputType”,“细胞”,“ReadSize”4)
arrds = ArrayDatastore属性:ReadSize: 4 IterationDimension: 4 OutputType:“细胞”

读取和显示第一个四个视频帧数据存储作为一个矩形平铺的图像。

帧=阅读(arrds);imout = imtile(帧);imshow (imout)

图包含一个坐标轴对象。坐标轴对象包含一个类型的对象的形象。

提示

  • 您可以组合和变换ArrayDatastore对象包含磁盘上的数据(如数据存储ImageDatastoreTabularTextDatastore对象)使用结合变换功能。

版本历史

介绍了R2020b