gather
キューに入れられた演算の実行後、tall 配列をメモリに収集
説明
は、未評価の tall 配列 Y
= gather(X
)X
の計算に必要な、キューに入れられたすべての演算を実行し、その結果を Y
としてメモリに収集します。
gather
計算の結果が大きすぎる場合、MATLAB® のメモリが足りなくなることがあります。結果がメモリに収まるかどうかに確信がもてない場合は gather(head(X))
または gather(tail(X))
を使って完全な計算を実行し、結果の一部のみをメモリに入れます。
計算中に追加でデータを渡す回数が可能な限りまとめられるように、gather
は慎重に使用してください。詳細については、tall 配列の遅延評価を参照してください。
例
tall 配列計算の遅延評価
airlinesmall.csv
データ セットのデータストアを作成します。使用する変数のサブセットを選択し、'NA'
値を欠損データとして扱って、tabularTextDatastore
で NaN
値に置き換えられるようにします。データストアを tall table に変換します。
varnames = {'Year','ArrDelay','UniqueCarrier'}; ds = tabularTextDatastore('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 table のサイズを計算します。
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.64 sec Evaluation completed in 0.8 sec
S = 1×2
123523 3
複数の 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));
Evaluating tall expression using the Local MATLAB Session: - Pass 1 of 1: Completed in 0.23 sec Evaluation completed in 0.58 sec
valRange = [mnA mxA]
valRange = 1×2
1 1000
入力引数
X
— 未評価の tall 配列
tall 配列
未評価の tall 配列。未評価の tall 配列は、gather
を使用せずに計算が実行される tall 配列で、その計算は完全に評価されます。
出力引数
Y
— インメモリ配列
配列
インメモリ配列。Y
のデータ型は、未評価の tall 配列 X
の基となるデータ型と同じです。
ヒント
Parallel Computing Toolbox™ をおもちの場合、
distributed
およびgpuArray
計算の収集の詳細については、gather
(Parallel Computing Toolbox) を参照してください。
拡張機能
tall 配列
メモリの許容量を超えるような多数の行を含む配列を計算します。
GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。
GPU 配列
Parallel Computing Toolbox™ を使用してグラフィックス処理装置 (GPU) 上で実行することにより、コードを高速化します。
使用上の注意事項および制限事項:
gather
(Parallel Computing Toolbox) を参照してください。
分散配列
Parallel Computing Toolbox™ を使用して、クラスターの結合メモリ上で大きなアレイを分割します。
使用上の注意事項および制限事項:
gather
(Parallel Computing Toolbox) を参照してください。
バージョン履歴
R2016b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)