ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

gather

キューに入れられた演算の実行後、tall 配列をメモリに収集

説明

Y = gather(X) は、未評価の tall 配列 X の計算に必要な、キューに入れられたすべての演算を実行し、その結果を Y としてメモリに収集します。

gather 計算の結果が大きすぎる場合、MATLAB® のメモリが足りなくなることがあります。結果がメモリに収まるかどうかに確信がもてない場合は gather(head(X)) または gather(tail(X)) を使って完全な計算を実行し、結果の一部のみをメモリに入れます。

計算中に追加でデータを渡す回数が可能な限りまとめられるように、gather は慎重に使用してください。詳細については、tall 配列の遅延評価を参照してください。

[Y1,Y2,Y3,...] = gather(X1,X2,X3,...) は、複数の未評価の tall 配列 X1, X2, X3,... を対応する出力 Y1, Y2, Y3,... に収集します。

すべて折りたたむ

airlinesmall.csv データセットのデータ ストアを作成します。使用する変数のサブセットを選択し、'NA' 値を欠損データとして扱って、datastoreNaN 値に置き換えられるようにします。データ ストアを tall テーブルに変換します。

varnames = {'Year','ArrDelay','UniqueCarrier'};
ds = datastore('airlinesmall.csv', 'TreatAsMissing', 'NA',...
    'SelectedVariableNames',varnames);
T = tall(ds)
T =

  Mx3 tall table

    Year    ArrDelay    UniqueCarrier
    ____    ________    _____________

    1987        8           'PS'     
    1987        8           'PS'     
    1987       21           'PS'     
    1987       13           'PS'     
    1987        4           'PS'     
    1987       59           'PS'     
    1987        3           'PS'     
    1987       11           'PS'     
     :         :              :
     :         :              :

tall テーブルのサイズを計算します。

sz = size(T)
sz =

  1x2 tall double row vector

    ?    ?

MATLAB® は tall 配列上のほとんどの演算を直ちには評価しません。その代わり、MATLAB は演算が入力されたときに実行する演算を記憶し、バックグラウンドで計算を最適化します。

未評価の tall 配列に gather を使用する場合、MATLAB はデータを通す回数を最小限にして、キューに入れられたすべての演算を実行します。この最適化により、大規模な計算の実行時間を大幅に短縮できます。このため、gather は結果を確認する必要がある場合にのみ使用してください。

gather を使用して計算を実行し、結果をメモリに収集します。

S = gather(sz)
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 0.66 sec
Evaluation completed in 0.75 sec
S = 1×2

      123523           3

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));
Evaluating tall expression using the Local MATLAB Session:
Evaluation completed in 0.46 sec
valRange = [mnA mxA]
valRange = 1×2

           1        1000

入力引数

すべて折りたたむ

未評価の tall 配列。未評価の tall 配列は、gather を使用せずに計算が実行される tall 配列で、その計算は完全に評価されます。

出力引数

すべて折りたたむ

メモリ内配列。Y のデータ型は、未評価の tall 配列 X の基となるデータ型と同じです。

ヒント

  • Parallel Computing Toolbox™ をおもちの場合、distributed および gpuArray 計算の収集の詳細については、gather を参照してください。

拡張機能

tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。

R2016b で導入