tall 数组用于处理由 datastore 支持的无法放入内存的数据。数据存储允许以单个放入内存的小块形式处理大型数据集,而不是一次将整个数据集加载到内存中。tall 数组扩展了此功能,允许使用公共函数处理无法放入内存的数据。
什么是 tall 数组?
由于数据不是一次加载到内存中,因此 tall 数组在第一维中可以是任意大的(即可以具有任意数量的行)。tall 数组允许您以一种直观方式处理大型数据集,这与处理内存 MATLAB® 数组的方式类似;不必为超大的数据量而专门编写特殊的代码(例如使用 MapReduce 之类的技术)。许多核心运算符和函数能够像处理内存数组一样处理 tall 数组。MATLAB 一次只处理一小块数据,而在后台执行所有的数据分块和处理,因此可以对大型数据集应用常见的运算表达式,如 A+B。
tall 数组的好处
与内存数组不同,tall 数组通常不执行计算,直到您使用 gather 函数请求执行计算后才会真正计算。这种延迟计算可快速处理大型数据集。当使用 gather 最终请求输出时,MATLAB 尽可能合并排队的计算,并执行最少次数的数据遍历操作。遍历数据的次数会极大地影响执行时间,因此建议仅在必要时才请求输出。
注意
由于 gather 将结果作为内存 MATLAB 数组返回,因此遵循标准内存考量即可。如果 gather 返回的结果太大,MATLAB 可能会耗尽内存。
820






