Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

readall

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

说明

示例

data = readall(ds) 返回 ds 指定的数据存储中的所有数据。如果数据存储中的数据不能全部载入内存,readall 将返回错误。

示例

data = readall(ds,'UseParallel',tf) 并行读取数据(需要 Parallel Computing Toolbox™)。

示例

全部折叠

创建一个包含四个图像的 ImageDatastore 对象。

imds = imageDatastore({'street1.jpg','street2.jpg','peppers.png','corn.tif'});

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

T = readall(imds);

检查输出。

imout = imtile(T);
imshow(imout)

Figure contains an axes. The axes contains an object of type image.

根据示例文件 airlinesmall.csv(包含表格数据)创建一个数据存储。

ds = tabularTextDatastore('airlinesmall.csv','TreatAsMissing','NA');

使用 SelectedVariableNames 属性指定感兴趣的变量。

ds.SelectedVariableNames = {'DepTime','ArrTime','ActualElapsedTime'};

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

T = readall(ds,'UseParallel',true);

readall 返回表中的所有数据。

查看有关表的信息。输出中只包含所选变量。

T.Properties
ans = 
  TableProperties with properties:

             Description: ''
                UserData: []
          DimensionNames: {'Row'  'Variables'}
           VariableNames: {'DepTime'  'ArrTime'  'ActualElapsedTime'}
    VariableDescriptions: {}
           VariableUnits: {}
      VariableContinuity: []
                RowNames: {}
        CustomProperties: No custom properties are set.
      Use addprop and rmprop to modify CustomProperties.

创建一个数据存储,用于维护基础数据存储的图像对之间的奇偶校验。例如,创建两个单独的图像数据存储,然后创建一个表示这两个基础数据存储的合并数据存储。

创建一个表示三个图像的集合的图像数据存储 imds1

imds1 = imageDatastore({'street1.jpg','street2.jpg','peppers.png'}); 

通过将 imds1 的图像变换为灰度再减小图像大小,创建第二个数据存储 imds2

imds2 = transform(imds1,@(x) imresize(rgb2gray(x),0.5));

基于 imds1imds2 创建一个合并的数据存储。

imdsCombined = combine(imds1,imds2);

从合并的数据存储中读取所有数据。输出是一个 3×2 元胞数组。两列表示分别从两个基础数据存储 imds1imds2 读取的所有数据。

dataOut = readall(imdsCombined)
dataOut=3×2 cell array
    {480x640x3 uint8}    {240x320 uint8}
    {480x640x3 uint8}    {240x320 uint8}
    {384x512x3 uint8}    {192x256 uint8}

输入参数

全部折叠

输入数据存储。您可以将这些数据存储用作 readall 方法的输入。

并行读取,指定为 truefalse。如果指定 true,则 readall 并行读取数据存储中的所有数据(需要 Parallel Computing Toolbox)。并行读取可以提高读取数据(尤其是远程数据)的性能。

  • 可以使用 UseParallel 属性和 Parallel Computing Toolbox 来改进数据存储处理。readall 通过使用基于线程的并行池等低开销计算环境,可以更快地读取本地计算机上受支持的数据存储。有关基于线程的并行池的详细信息,请参阅 parpool (Parallel Computing Toolbox)

  • 由于 MATLAB 内置了多线程功能,因此在不使用基于 MATLAB 工作进程的并行机制时,某些数据存储(例如 imageDatastore)在本地计算机上的执行速度会更快。有关详细信息,请参阅 MATLAB 多核

示例:readall(ds,'UseParallel',true)

输出参数

全部折叠

数据存储中的所有数据,以表或元胞数组形式返回,具体取决于 ds 的类型。

数据存储类型data 的数据类型说明
TabularTextDatastoreSpreadsheetDatastoreSelectedVariableNames 属性确定表的变量。
ImageDatastore元胞数组 元胞数组中的每个元素都包含一个图像的图像数据。readall 函数支持 imread 函数所支持的所有图像类型。有关支持的图像类型的详细信息,请参阅 imread
KeyValueDatastore表变量名称是 KeyValue
FileDatastore元胞数组元胞数组中的每个元素都包含使用 ReadFcn 属性指定的自定义读取函数从一个文件中读取的数据。
TransformedDatastore视情况而定输出与 UnderlyingDatastores 属性指定的基础数据存储所返回的输出相同。例如,如果基础数据存储是一个图像数据存储,则 data 以元胞数组形式返回,其中元胞数组中的每个元素都包含一个图像的图像数据。
CombinedDatastore元胞数组

元胞数组的每列都包含对 UnderlyingDatastores 属性指定的对应基础数据存储调用 readall 所得到的结果。

如果基础数据存储中数据子集的数量不同,则 readall 仅在所有基础数据存储都有数据时返回数据。例如,假设一个合并的数据存储有两个基础数据存储,一个包含 m 个数据子集,另一个包含 n 个数据子集,其中 m > n。则输出是包含两列和 n 行的元胞数组。

扩展功能

另请参阅

| |

在 R2014b 中推出