主要内容

收集

执行排队操作后将高阵列收集到内存中

描述

例子

y=聚集(X执行计算未评估的高阵列所需的所有排队操作X并将结果收集到内存中y

马铃薯®如果结果的结果,可以用完内存收集计算太大了。如果您不确定结果是否适合内存,请使用聚集(头(x))或者聚拢(尾部(x))要执行完整的计算,但只将结果的一小部分带到内存中。

收集谨慎地确保在尽可能在计算过程中组合通过数据的额外通过。有关更多信息,请参阅高阵列的延期评估

例子

[y1,y2,y3,......] =聚集(X1,X2,X3,......)收集多个未扩展的高阵列x1,x2,x3,...进入相应的输出Y1,Y2,Y3,...

例子

全部收缩

创建一个数据存储区Airlinesmall.csv.数据集。选择要使用的变量子集和处理'na'值作为缺少数据的值tabulartextdatastore.用它们取代它们价值观。将数据存储转换为高大的表格。

varnames = {'年''arrdelay''unqueCarrier'};ds = tabulartextdataStore('airlinesmall.csv''尾声''na'......'selectedvariamblenames',varnames);t =高(DS)
T = MX3高表年ARRDELAY UNIQUECARRIER ________ ________________________________1987 8 {'ps'} 1987 21 {'ps'} 1987 13PS'} 1987 3 {'PS'} 1987 11 {'PS'} ::::::::::::::::::::::::::::

计算高表的大小。

sz =尺寸(t)
sz = 1x2高大的双排矢量??

MATLAB®不会立即评估高大阵列上的大多数操作。相反,MATLAB记得在输入它们时执行的操作,并优化背景中的计算。

当你使用时收集在一个未评估的高阵列上,MATLAB使用通过数据的最小传递执行所有排队的操作。这种优化大大降低了大型计算的执行时间。出于这个原因,您应该使用收集只有当您需要查看结果时才。

收集执行计算并将结果收集到内存中。

s =聚集(SZ)
使用本地MATLAB会话评估高表达: - 通过1的第1条:在0.89秒评估中完成,在1.1秒内完成
S =1×2123523 3.

收集有几个输入可以同时评估几个高阵列。

从1到1000之间的随机整数的内存内部阵列创建高阵列。计算每列中的最大值和最小值。

a = tall(randi(1000,100,7))
A = 100x7高大双矩阵815 163 645 60 423 583 851 906 795 379 682 95 541 561 127 312 812 43 599 870 930 914 529 533 72 471 265 697 633 166 351 522 696 319 583 98 602 940 97 700 120 816 279 263876 819 639 940 880 547 655 551 818 547 655 551 818 34 655 551 818 34 646 989 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
b = min(a);c = max(a);

使用结果确定阵列中的总体最小值和最大值。将最终结果收集到内存中。

[mna,mxa] =聚集(min(b),max(c));
使用本地MATLAB会话评估高表达: - 第1条第1条:在0.29秒评估中完成,在0.67秒内完成
valrange = [mna mxa]
valrange =1×21 1000

输入参数

全部收缩

不值高的阵列。未评估的高阵列是您在未使用的情况下执行计算的任何高阵列收集完全评估这些计算。

输出参数

全部收缩

内存阵列。数据类型y与未评估的高阵列的底层数据类型相同X

尖端

  • 如果您有并行计算工具箱™,请参阅收集(并行计算工具箱)有关收集的信息分散式GPUArray.计算。

扩展能力

高阵列
使用比内存更多的阵列计算更多行的阵列。

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

介绍在R2016B.