Main Content

fetchOutputs

ジョブ内の全タスクから出力引数を取得する

    説明

    data = fetchOutputs(j) は、完了したジョブのタスクに含まれる出力引数を取得します。

    createJob または createCommunicatingJob を使用して作成するジョブから出力を取得する場合、mn 列の cell 配列である data の各行には、ジョブ内にある m 件のタスクそれぞれの出力引数が含まれます。data の各行には n 個の要素があります。ここで、n はジョブ内の任意のタスクにある出力引数の数のうち、最大のものです。行の n 個の要素は、そのタスクの出力引数を含む配列です。タスクの出力引数が n 個未満の場合、そのタスクの行内の余分な要素は空になります。

    batch を使用して作成するジョブから出力を取得する場合は、次のようになります。

    • fcn 構文を使用してバッチ ジョブを作成し、N 個の出力を指定する場合、data1N 列の cell 配列です。

    • script または expression 構文を使用してバッチ ジョブを作成する場合、data は構造体スカラーを含む 11 列の cell 配列です。バッチ ジョブを作成する際に Pool 引数を指定する場合、この構造体スカラーにはクライアントとして機能するワーカーのワークスペースが含まれます。それ以外の場合、構造体スカラーにはジョブを実行するワーカーのワークスペースが含まれます。

    ジョブの出力データは、ジョブが実行されるクラスターの JobStorageLocation プロパティで指定された場所に格納されます。fetchOutputs を実行しても、出力データは JobStorageLocation から削除されません。出力データを削除するには、関数 delete を使用して個々のタスクまたはジョブ全体を削除します。

    以下の場合、関数 fetchOutputs はエラーをスローします。

    • ジョブ jState プロパティが 'finished' でない。

    • ジョブ jState'finished' で、ジョブ jTasks プロパティで指定されたタスクのいずれかでエラーが発生している。

    ヒント

    ジョブ j のタスクのいずれかがエラーの発生後に失敗しているかどうかを確認するには、j.Tasks.Error が空かどうかを確認します。返される配列が空の場合、ジョブ j にエラーが発生したタスクはありません。

    一部のタスクが正常に完了している場合、タスクの OutputArguments プロパティを使用してそのタスクの出力引数に直接アクセスできます。

    すべて折りたたむ

    バッチ ジョブを実行し、そのジョブの出力を取得します。

    batch を使用して、既定のクラスター プロファイルによりジョブを作成します。そのジョブにおいて、ワーカー上で magic(3) を実行し、1 件の出力を保存します。

    j = batch(@magic,1,{3});

    ジョブが完了するまで待ちます。その後、fetchOutputs を使用してジョブの出力データを取得します。

    wait(j)
    data = fetchOutputs(j);

    取得したデータは、magic(3) の出力 1 件を含む cell 配列です。cell 配列にインデックスを付けて、その出力を表示します。

    data{1}
    ans =
    
         8     1     6
         3     5     7
         4     9     2

    入力引数

    すべて折りたたむ

    ジョブ。parallel.Job オブジェクトとして指定します。ジョブを作成するには、batchcreateJob、または createCommunicatingJob を使用します。

    バージョン履歴

    R2012a で導入