这里简单的说一下,gather 就是执行排队的运算后,将tall数组收集到内存中。
语法
Y = gather(X)
[Y1,Y2,Y3,...] = gather(X1,X2,X3,...)
说明
Y = gather(X)
对尚未计算,但需要计算的tall数组x执行所有必须的排队运算,然后将Y收集到内存中。如果 gather
的计算结果太大,可能导致 MATLAB® 内存不足。如果您不确定结果是否能够完全放入内存,请使用 gather(head(X))
或 gather(tail(X))
执行完整计算,但只将一小部分结果放入内存。
[Y1,Y2,Y3,...] = gather(X1,X2,X3,...)
将多个未计算的 tall 数组 X1, X2, X3,...
收集到对应的输出 Y1, Y2, Y3,...
中。
看个例子
计算多个tall数组。使用gather和多个输入同时计算多个tall数组。使用由 1 到 1000 之间的随机整数组成的一个内存数组,创建一个 tall 数组。计算每一列中的最大值和最小值。
A = tall(randi(1000,100,7))
A =
100x7 tall double matrix
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 263 876 819 639 940 880
547 655 551 818 34 646 989
: : : : : : :
b = min(A);
c = max(A);
根据这些结果确定数组中的整体最小值和最大值。将最终结果收集到内存中。
[mnA,mxA] = gather(min(b),max(c));
valRange = [mnA mxA]
valRange = 1×2
1 1000
具体过程请读者参见执行排队的运算后,将 tall 数组收集到内存中 - MATLAB gather- MathWorks 中国