Main Content

fetchOutputs

バックグラウンドで実行されている関数からの結果の取得

    説明

    [Y1,...,Ym] = fetchOutputs(F) は、Future 配列 F からの m 個の結果を取得します。

    F の各要素は、少なくとも m 個の出力引数を返さなければなりません。Future オブジェクトの出力引数の数を確認するには、NumOutputArguments プロパティを使用します。

    MATLAB® は、F の各要素に関連付けられている関数が終了するまで、その要素からの結果の取得を待機します。関連付けられている関数が終了すると、Future オブジェクトの State プロパティが 'finished' になります。fetchOutputs を使用すると、MATLAB は F の各要素の Read プロパティを true に設定します。

    parfevalparfevalOnAllafterEach、または afterAll を使用して以下を行う場合は Future オブジェクトを作成します。

    • backgroundPool を使用してバックグラウンドで関数を実行する。

    • Parallel Computing Toolbox™ を使用している場合に並列プール ワーカーで関数を実行する。

    FFuture オブジェクトの配列である場合、F の各要素からの j 番目の出力が連結されて出力 Yj が形成されます。この構文は、各要素からの j 番目の出力を最初の次元に沿って連結できる場合にのみ使用します。

    [Y1,...,Ym] = fetchOutputs(F,UniformOutput=false) は、Future 配列 F からの m 個の結果を cell 配列として取得します。

    FFuture オブジェクトの配列である場合、F の各要素からの j 番目の出力が cell 配列に連結されて出力 Yj が形成されます。この構文は、任意の出力 Yj について、各要素からの出力を最初の次元に沿って連結できない場合に使用します。

    すべて折りたたむ

    この例では、parfeval および backgroundPool を使用してバックグラウンドで関数を実行する方法を示します。バックグラウンドで関数を実行すると、他の MATLAB® コードを同時に実行できます。

    parfeval を使用して関数 magic(3) を実行し、単一の出力を取得します。最初の引数として backgroundPool を指定して、関数をバックグラウンドで実行します。parfeval を使用すると、Future オブジェクトが作成されます。

    f = parfeval(backgroundPool,@magic,1,3);

    バックグラウンドから出力を取得するには、fetchOutputs を使用します。magic の実行が完了すると、MATLAB は出力を返します。

    fetchOutputs(f)
    ans = 3×3
    
         8     1     6
         3     5     7
         4     9     2
    
    

    入力引数

    すべて折りたたむ

    入力 Futureparallel.Future スカラーまたは配列として指定します。

    例: F = parfeval(backgroundPool,@magic,1,3);

    出力引数

    すべて折りたたむ

    future からの出力引数。出力のタイプは、Future スカラーまたは配列 f、およびそれぞれの Future が関連付けられている関数によって決まります。

    • UniformOutputfalse として指定されている場合、j 番目の出力引数は n 個の要素を含む cell 配列になります。ここで、nF の要素の数です。

    • それ以外の場合、j 番目の出力引数は F の各要素の j 番目の出力で返されるタイプの配列になります。

    F の各要素は、少なくとも m 個の出力引数を返さなければなりません。Future の出力引数の数を確認するには、NumOutputArguments プロパティを使用します。