Matlab中的gather函数是个啥玩意

这里简单的说一下,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 中国

猜你喜欢

转载自blog.csdn.net/weixin_48266700/article/details/123857962