主要内容

毕竟

所有功能完成后运行功能在后台运行

    描述

    例子

    B=毕竟(一个,fcn,n)返回一个未来对象B和运行功能fcn后自动中的所有元素未来数组一个完成。

    MATLAB®运行函数fcn使用连接输出的每个元素一个。输出日元…,从每个未来对象是垂直连接,在线性索引顺序。例如,如果一个是一个双元素未来向量和输出日元y2从第一和第二未来对象分别MATLAB运行fcn([日元;y2)在所有元素一个完成。

    如果未来数组一个元素,MATLAB函数只运行一次。当预定的功能fcn完成,未来对象B完成。

    您创建一个未来对象时:

    • 你在后台运行一个函数使用backgroundPool

    • 你运行一个函数在一个平行的池当你有并行计算工具箱™。

    关于使用的更多信息毕竟同时,看到使用afterEach,毕竟跑回调函数(并行计算工具箱)

    如果任何元素一个遇到错误,错误的属性B是一个MException

    B=毕竟(一个,fcn,nPassFuture = true)运行fcn (A)而不是使用连接输出的每个元素一个

    错误的属性B是一个空MException数组,即使一个或多个元素一个遇到一个错误。

    例子

    全部折叠

    这个例子展示了如何使用afterEach更新等酒吧与功能在后台运行的进程。

    创建一个酒吧等,w

    w = waitbar (0,“请等待…”);

    为你设定的迭代次数循环,N。存储当前迭代完成的数量,0迭代的总数,N,在用户数据财产等的酒吧。

    N =20.;w。用户数据= [0 N];

    运行一个循环与N迭代。在每个迭代中,使用parfevalbackgroundPool运行暂停在后台为一个随机的秒数。存储每个未来对象数组中。

    i = 1: N延迟=兰德;f (i) = parfeval (backgroundPool @pause 0,延迟);结束

    使用辅助函数updateWaitbar更新waitbar之后未来完成。

    afterEach (f, @ (~) updateWaitbar (w), 0);

    使用删除关闭等待毕竟酒吧未来对象完成。

    毕竟(f, @(~)删除(w), 0);

    定义辅助函数

    定义的helper函数updateWaitbar。函数增量的第一个元素用户数据属性,然后使用向量计算的进展。

    函数updateWaitbar (w)%更新waitbar使用用户数据的属性。%检查如果waitbar删除对象的引用如果isvalid (w)%增量迭代完成的数量w.UserData (1) = w.UserData (1) + 1;%计算的进展进步= w.UserData (1) / w.UserData (2);%更新waitbarwaitbar(进步,w);结束结束

    输入参数

    全部折叠

    输入未来对象,指定为一个parallel.Future标量或数组。

    MATLAB的函数fcn每个元素后一个完成。如果任何元素一个遇到错误,你指定PassFuture作为真正的,毕竟仍在运行fcn使用该元素。

    • 如果您指定PassFuture作为真正的函数运行fcn (Aj)使用每个未来元素Aj一个。如果任何元素一个遇到错误,毕竟没有完成一个错误。

    • 否则,功能运行Xm fcn (X1,…)使用输出X1,…, Xm从每个未来元素一个。如果任何元素一个遇到错误,毕竟完成了一个错误。

    如果未来数组元素,MATLAB运行功能次了。当预定的功能fcn完成,未来对象B完成。

    例子:一个= parfeval (backgroundPool @magic 1、3);

    回调函数,指定为一个函数处理。

    例子:fcn = @magic

    输出参数,指定为一个非负整数标量。

    • 如果您指定PassFuture作为真正的,n输出参数的数量预计运行吗fcn (A)使用未来数组一个

    • 否则,n输出参数的数量预计运行吗fcn (Y1,…, Ym)使用垂直连接输出日元…,从每个元素Aj未来数组一个

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    输出参数

    全部折叠

    输出未来对象,作为一个返回parallel.Future对象。

    当您设置PassFuture,你改变了错误的属性B:

    • 如果PassFuture真正的,错误的属性B是一个空MException数组,即使一个或多个元素一个遇到一个错误。

    • 否则,如果任何元素一个遇到错误,错误的属性B是一个MException对象。

      找到错误的原因,使用导致的属性B.Error

    另请参阅

    ||