主要内容

arrayDatastore

内存中数据的数据存储

描述

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

创建

描述

例子

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

例子

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

输入参数

全部展开

输入数组,指定为矩阵。

属性

全部展开

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

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

的默认值“ReadSize”1

数据类型:双重的

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

如果指定“OutputType”财产“相同”,然后“迭代维度”必须设置为值1。

如果修改“迭代维度”在创建你的ArrayDatastore对象,MATLAB®将数据存储重置为未读状态。

数据类型:双重的

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

  • “细胞”-以n × 1单元格数组的形式返回数据。例如,如果一个是数字数组和可读大小3.阅读返回数字数据的3 × 1单元格数组。

  • “相同”-返回与输入数组相同的数据类型一个。例如,如果一个是一个数字数组,阅读返回数字数组。

价值输出类型属性返回的数据类型预览阅读readall功能。

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

数据类型:烧焦|字符串

目标函数

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

例子

全部崩溃

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

创建一个矩阵。

A=魔术(10)
一个=10×1092 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)
ards = ArrayDatastore与属性:ReadSize: 1 IterationDimension: 1 OutputType: "cell"

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

readall(arrds)
ans=10×1单元阵列{[ 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.导入电子表格中从第5列到第10列的所有行。

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的}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}{'温德姆县'}{'CT'}{'康涅狄格'}1.1843e+05 49073 1.3284e+09 {'Androscoggin县'}{'ME'} {'Maine'} 1.077e+05 49090 1.2119e+09 {'Aroostook县'}{'ME'} {'Maine'} 71870 39529 1.7279e+10{'坎伯兰县'}{'ME'} {'Maine'} 2.8167e+05 1.3866e+05 2.1633e+09 {'Franklin县'}{'ME'} {'Maine'} 30768 21709 4.3942e+09{'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,“输出类型”“相同”
ards = 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的}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}}{'康涅狄格'}County' } {'CT'} {'Connecticut'} 1.1843e+05 49073 1.3284e+09

为mat文件变量创建数据存储,然后从不同的文件中读取数据可读大小值。

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

负载“BostonWeatherData.mat”

为数据库创建数据存储weatherData变量。集可读大小10行的值可读大小属性的每次调用时,确定从数据存储中读取多少行数据阅读函数。集“OutputType”“相同”返回与输入数组相同的数据类型。

arrds = arrayDatastore (weatherData,“ReadSize”10“输出类型”“相同”
ards = ArrayDatastore与属性:ReadSize: 10 IterationDimension: 1 OutputType: "same"

从数据存储中读取数据。

data1 =阅读(arrds)
数据1=10×3时刻表时间-温度-湿度事件-2015年7月1日-2015年7月2日雷暴-2015年7月3日-2015年7月70日-2015年7月4日-2015年7月67日-2015年7月6日-2015年7月7日无雨-2015年7月10日-7月7日无雨-2015年7月10日-7月69日-7月76

设定可读大小属性值30.并从数据存储中读取。第二次呼叫阅读函数从数据存储中读取接下来的30行。

arrds。ReadSize = 30;

从数据存储中读取数据。

data2 =阅读(arrds)
数据2=30×3时刻表UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU温度温度温度温度温度温度温度温度湿度事件湿度事件的湿度事件湿度事件湿度事件。湿度事件。湿度事件。湿度事件。湿度事件。湿度事件。湿度事件。湿度事件。温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度温度湿度事件。湿度事件。湿度事件。湿度事件。湿度事件。湿度事件。湿度事件。事件。湿度事件。事件事件。时间时间时间时间时间时间时间时间时间时间时间。77 58非e 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 = VideoReader (“xylophone.mp4”);

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

allFrames =阅读(v);

从读取的帧创建数据存储。设置“迭代维度”4沿着第四维读取数据。集“OutputType”“细胞”将数据作为单元格数组返回。集“ReadSize”至4可在每次调用中读取四个视频帧阅读函数。

arrds = arrayDatastore (allFrames,“IterationDimension”4.“输出类型”“细胞”“ReadSize”,4)
ards = ArrayDatastore与属性:ReadSize: 4 IterationDimension: 4 OutputType: "cell"

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

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

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

提示

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

在R2020b中引入