readall
读取数据存储中的所有数据
说明
示例
创建一个包含四个图像的 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'} VariableTypes: ["double" "double" "double"] 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));
基于 imds1
和 imds2
创建一个合并数据存储。
imdsCombined = combine(imds1,imds2);
从合并数据存储中读取所有数据。输出是一个 3×2 元胞数组。两列表示分别从两个基础数据存储 imds1
和 imds2
读取的所有数据。
dataOut = readall(imdsCombined)
dataOut=3×2 cell array
{480×640×3 uint8} {240×320 uint8}
{480×640×3 uint8} {240×320 uint8}
{384×512×3 uint8} {192×256 uint8}
输入参数
输入数据存储。您可以将这些数据存储用作 readall
方法的输入。
MATLAB® 数据存储 - 使用 MATLAB
datastore
函数创建的数据存储。例如,使用ImageDatastore
为图像集合创建一个数据存储。有关完整的数据存储列表,请参阅Select Datastore for File Format or Application。自定义数据存储 - 使用自定义数据存储框架创建的数据存储。请参阅Develop Custom Datastore。
并行读取,指定为 true
或 false
。如果指定 true
,则 readall
并行读取数据存储中的所有数据(需要 Parallel Computing Toolbox)。并行读取可以提高读取数据(尤其是远程数据)的性能。
示例:readall(ds,UseParallel=true)
输出参量
数据存储中的所有数据,以表或元胞数组形式返回,具体取决于 ds
的类型。
数据存储类型 | data 的数据类型 | 描述 |
---|---|---|
TabularTextDatastore 和 SpreadsheetDatastore | 表 | SelectedVariableNames 属性确定表的变量。 |
ImageDatastore | 元胞数组 | 元胞数组中的每个元素都包含一个图像的图像数据。readall 函数支持 imread 函数所支持的所有图像类型。有关支持的图像类型的详细信息,请参阅 imread 。 |
KeyValueDatastore | 表 | 表变量名称是 Key 和 Value 。 |
FileDatastore | 元胞数组 | 元胞数组中的每个元素都包含使用 ReadFcn 属性指定的自定义读取函数从一个文件中读取的数据。 |
TransformedDatastore | 取决于输入数据存储和变换函数 | TransformedDatastore 从基础数据存储中读取数据,调用关联的变换函数,并垂直串联数据。如果您的数据存储并不均匀,并且您需要基础数据存储数据垂直串联,请用花括号将变换函数输出括起来。 |
CombinedDatastore | 取决于输入数据存储 | 如果基础数据存储是均匀的,则其数据会与所有其他数据存储的数据合并(水平串联),而不会进行修改。 如果基础数据存储并不均匀,则其数据在与所有其他数据存储的数据组合(水平串联)之前包装在一个单元中。 |
SequentialDatastore | 取决于输入数据存储 | 输出是来自基础数据存储的所有数据的垂直串联结果。 如果所有基础数据存储都为空,则输出基于第一个基础数据存储的空类型。如果没有基础数据存储,则输出为空的双精度值。 如果基础数据存储是均匀的,则其数据会与所有其他数据存储的数据合并,而不会进行修改。 如果基础数据存储并不均匀,则其数据在与所有其他数据存储的数据组合之前包装在一个单元中。 |
扩展功能
用法说明和限制:
要并行运行,请将
UseParallel
选项设置为true
。
有关详细信息,请参阅使用自动并行支持运行 MATLAB 函数 (Parallel Computing Toolbox)。
用法说明和限制:
在基于线程的环境中,您只能对以下数据存储使用
readall
:ImageDatastore
对象使用
combine
或transform
从ImageDatastore
对象创建的CombinedDatastore
、SequentialDatastore
或TransformedDatastore
对象
如果您有 Parallel Computing Toolbox,则可以对其他数据存储使用
readall
。为此,请使用基于进程的并行池运行该函数,而不是使用backgroundPool
或ThreadPool
(使用ProcessPool
或ClusterPool
)。readall
在基于线程的环境中不支持以下图像格式:分层数据格式 (HDF)
SVS
TIFF
有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2014b 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)