Main Content

本页采用了机器翻译。点击此处可查看英文原文。

fetchOutputs

从作业中的所有任务中检索输出参量

    说明

    data = fetchOutputs(j) 检索已完成作业的任务中包含的输出参量。

    当您从使用 createJobcreateCommunicatingJob 创建的作业中检索输出时,m-by-n 单元格数组 data 的每一行都包含作业中每个 m 任务的输出参量。data 中的每一行都有 n 个元素,其中 n 是作业中任何一个任务的输出参量的最大数量。一行的 n 元素是包含该任务的输出参量的数组。如果某个任务的输出参量少于 n 个,则该任务行中的多余元素为空。

    当您从使用 batch 创建的作业中检索输出时:

    • 如果使用 fcn 语法创建批处理作业并指定 N 输出,则 data 是一个 1-by-N 单元格数组。

    • 如果使用 scriptexpression 语法创建批处理作业,则 data 是一个包含结构标量的 1-by-1 单元格数组。如果在创建批处理作业时指定 Pool 参量,则结构标量将包含充当客户端的工作进程的工作区。否则,结构标量包含运行该作业的工作进程的工作空间。

    作业的输出数据存储在作业运行的集群的 JobStorageLocation 属性指定的位置。当您运行 fetchOutputs 时,输出数据不会从 JobStorageLocation 中删除。要删除输出数据,请使用 delete 函数删除单个任务或整个作业。

    如果出现以下情况,fetchOutputs 函数将会抛出错误:

    • 作业 jState 属性不是 'finished'

    • 作业 jState 属性为 'finished',并且作业 jTasks 属性给出的任务之一遇到错误。

    提示

    要查看作业 j 上的任何任务是否在遇到错误后失败,请检查 j.Tasks.Error 是否为空。如果返回的数组为空,则表示作业 j 上的所有任务均未遇到任何错误。

    如果某些任务成功完成,您可以使用任务的 OutputArguments 属性直接访问该任务的输出参量。

    示例

    示例

    全部折叠

    运行批处理作业,然后检索该作业的输出。

    使用 batch 使用默认集群配置文件创建作业。在该作业中,在工作进程上运行 magic(3) 并存储一个输出。

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

    等待作业完成。然后,使用 fetchOutputs 从作业中检索输出数据。

    wait(j)
    data = fetchOutputs(j);

    检索到的数据是一个包含来自 magic(3) 的一个输出的单元格数组。索引到单元格数组中以获取该输出。

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

    输入参数

    全部折叠

    作业,指定为 parallel.Job 对象。要创建作业,请使用 batchcreateJobcreateCommunicatingJob

    版本历史记录

    在 R2012a 中推出