Main Content

readall

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

说明

示例

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

示例

如果 tftrue,则 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)

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

ds = tabularTextDatastore("airlinesmall_subset.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(im2gray(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取决于输入数据存储和变换函数TransformedDatastore 从基础数据存储中读取数据,调用关联的变换函数,并垂直串联数据。如果您的数据存储并不均匀,并且您需要基础数据存储数据垂直串联,请用花括号将变换函数输出括起来。
CombinedDatastore取决于输入数据存储

如果基础数据存储是均匀的,则其数据会与所有其他数据存储的数据合并(水平串联),而不会进行修改。

如果基础数据存储并不均匀,则其数据在与所有其他数据存储的数据组合(水平串联)之前包装在一个单元中。

SequentialDatastore取决于输入数据存储

输出是来自基础数据存储的所有数据的垂直串联结果。

如果所有基础数据存储都为空,则输出基于第一个基础数据存储的空类型。如果没有基础数据存储,则输出为空的双精度值。

如果基础数据存储是均匀的,则其数据会与所有其他数据存储的数据合并,而不会进行修改。

如果基础数据存储并不均匀,则其数据在与所有其他数据存储的数据组合之前包装在一个单元中。

扩展功能

版本历史记录

在 R2014b 中推出

另请参阅

| |