主要内容

arrayDatastore

内存中数据的数据存储

自从R2020b

描述

使用一个ArrayDatastore对象来管理从内存数据创建的数据存储。您可以创建ArrayDatastore对象使用arrayDatastore函数,指定其属性,然后使用对象函数导入和处理数据。

创建

描述

例子

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

例子

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

输入参数

全部展开

输入数组,指定为矩阵。

属性

全部展开

ArrayDatastore属性描述数据存储对象中内存数据的格式,并控制如何从数据存储中读取数据。的值ArrayDatastore属性,在创建数据存储对象时使用名称-值对参数。要在创建对象后查看或修改属性,请使用点表示法。

类调用中要读取的数据量函数,指定为逗号分隔的对,由“ReadSize”一个正整数。每次呼叫读取最大值为ReadSize行。的值“ReadSize”这超过了输入数据中的行数,将读取数据存储对象中的所有行。

的默认值“ReadSize”1

数据类型:

类调用中读取的维度函数,指定为逗号分隔的对,由“IterationDimension”一个正整数。例如,“IterationDimension”,2使从数据存储对象返回面向列的数据。的默认值“IterationDimension”1,这使得返回面向行的数据..

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

的值“IterationDimension”在创建了ArrayDatastore对象,MATLAB®将数据存储重置为未读状态。

数据类型:

输出数据类型,指定为由逗号分隔的对组成“OutputType”其中一个价值观是:

  • “细胞”—以n × 1单元格数组的形式返回数据。例如,如果一个是数值数组和ReadSize3.返回数值数据的3 × 1单元格数组。

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

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

的值“OutputType”在创建了ArrayDatastore对象,MATLAB将数据存储重置为未读状态。

数据类型:字符|字符串

对象的功能

hasdata 确定是否有数据可以读取
numpartitions 数据存储分区数
分区 对数据存储进行分区
预览 预览数据存储中的数据子集
读取数据存储中的数据
readall 读取数据存储中的所有数据
重置 将数据存储重置为初始状态
变换 变换数据存储
结合 组合来自多个数据存储的数据
洗牌 打乱数据存储中的所有数据
子集 创建数据存储或文件集的子集

例子

全部折叠

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

创建一个矩阵。

A =魔术(10)
一个=10×1092 99 74 67 15 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 86 93 25 2 9 61 68 24 76 83 90 75 52 34 17 42 49 26 33 65 23 5 82 89 91 48 30 32 39 66 79 6 13 95 97 29 72年38 45 31日10 12 94 96 78 35 37 44 46 53 11 18 100 77 84 36 43 50 27 59

创建一个ArrayDatastore对象。

arrayDatastore(A)
arrds = ArrayDatastore属性:ReadSize: 1 IterationDimension: 1 OutputType: "cell"

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

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 =可读的(“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.6248e+05 3.62e+05 1.5657e+09{'新伦敦县'}{'CT'}{'康涅狄格'}2.7406e+05 1.2099e+05 1.722e+09{'温德姆县'}{'CT'}{'康涅狄格'}1.5269e+05 57963 1.0624e+09{'安德罗斯科金县'}{'缅因州'}1.077e+05 49073 1.3284e+09{'阿鲁斯托克县'}{'缅因州'}71870 39529 1.7279e+10{'坎伯兰县'}{'缅因州'}2.8167e+05 1.3866e+05 2.1633e+09{'弗兰克林县'}{'缅因州'}{'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”“相同”返回与输入表相同的数据类型。

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

预览数据存储中的数据。

预览(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.6248e+05 3.62e+05 1.5657e+09{'新伦敦县'}{'CT'}{'康涅狄格州'}2.7406e+05 1.2099e+05 1.722e+09{'托兰县'}{'CT'}{'康涅狄格州'}1.5269e+05 57963 1.0624e+09{'温德姆县'}{'CT'}{'康涅狄格州'}1.1843e+05 49073 1.3284e+09

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

加载mat文件BostonWeatherData.mat进入工作区。

负载“BostonWeatherData.mat”

对象的数据存储weatherData变量。集ReadSize10行。的价值ReadSize属性时从数据存储中读取多少行数据函数。集“OutputType”“相同”返回与输入数组相同的数据类型。

arrds = arrayDatastore(天气数据,“ReadSize”10“OutputType”“相同”
arrds = ArrayDatastore属性:ReadSize: 10 IterationDimension: 1 OutputType: "same"

从数据存储中读取数据。

Data1 = read(ards)
data1 =10×3的时间表时间温度f湿度事件___________ ____________ ________ ____________ 2015年7月01日72 78雷暴事件2015年7月02日72 60无2015年7月02日70 56无2015年7月04日67 75无2015年7月05日72 67无2015年7月06日74 69无2015年7月07日75 77雨2015年7月08日79 68雨2015年7月09日66 77雨2015年7月10日69 74雨

设置ReadSize物业价值30.并从数据存储中读取。第二次调用函数从数据存储中读取接下来的30行。

arrds。ReadSize = 30;

从数据存储中读取数据。

Data2 = read(arrds)
data2 =30×3的时间表时间温度f湿度事件___________ ____________ ________ ______ 2015年7月11日76 49无2015年7月12日81 54无2015年7月13日72 81无2015年7月14日74 72雨2015年7月15日75 87雨2015年7月16日64 65无2015年7月17日68 72无2015年7月18日71 81雨2015年7月19日81 73雨2015年7月20日81 62无2015年7月21日76 66无2015年7月22日77 58无2015年7月23日75 52无2015年7月24日74 60雨2015年7月25日66 81无2015年7月26日71 79雨

对象中读取的维度可以选择ArrayDatastore.例如,您可以读取视频的帧,其数据存储在ArrayDatastore通过阅读第四维空间。

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

v =视频阅读器(“xylophone.mp4”);

读取所有视频帧VideoReader对象放入工作区。

allFrames = read(v);

从读取的帧创建一个数据存储。集“IterationDimension”4沿着第四维读取数据。集“OutputType”“细胞”以单元格数组的形式返回数据。集“ReadSize”到4读取四个视频帧在每次调用函数。

arrds = arrayDatastore(所有帧,“IterationDimension”,4,“OutputType”“细胞”“ReadSize”4)
arrds = ArrayDatastore属性:ReadSize: 4 IterationDimension: 4 OutputType: "cell"

读取数据存储中的前四个视频帧并将其显示为矩形平铺图像。

帧=读取(arrds);Imout = imtile(帧);imshow (imout)

图中包含一个轴对象。axis对象包含一个image类型的对象。

提示

  • 你可以组合和转换ArrayDatastore对象,其数据存储区包含磁盘上的数据(例如ImageDatastore而且TabularTextDatastore对象)使用结合而且变换功能。

版本历史

R2020b中介绍

Baidu
map