主要内容

afterEach

每个函数完成后运行功能在后台运行

    描述

    例子

    B= afterEach (一个,fcn,n)运行函数fcn后自动中的每个元素未来数组一个完成并返回一个未来对象B

    MATLAB®运行函数fcn使用输出的每个元素一个。如果未来数组一个元素,MATLAB运行功能次了。当预定的功能fcn完成的th一次,未来对象B完成。

    关于使用的更多信息afterEach运行功能完成后运行在一个平行的游泳池,看到的使用afterEach,毕竟跑回调函数(并行计算工具箱)

    如果任何元素一个遇到错误,错误的属性B是一个单元阵列相同数量的元素一个

    B= afterEach (一个,fcn,nPassFuture = true)运行fcn使用每个元素一个而不是每个元素的输出一个

    错误的属性B是一个空单元阵列,即使一个或多个元素一个遇到一个错误。

    例子

    全部折叠

    这个例子展示了如何使用afterEach安排一个回调函数来运行一个函数完成后在后台运行。

    使用parfeval运行函数兰特(1)和检索一个输出。指定backgroundPool作为第一个参数在后台运行功能。创建10个重复10次未来对象。

    我(我)= = 1:10 f parfeval (backgroundPool @rand 1,1);结束

    在每一个未来完成后,显示了使用价值disp函数。的输入参数disp输出参数从每个未来。指定的第三个参数afterEach函数作为0从回调返回任何输出。

    afterEach (f @disp 0);

    这个例子展示了如何使用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作为真正的,afterEach仍在运行fcn使用该元素。

    • 如果您指定PassFuture作为真正的,MATLAB运行fcn (Aj)在每一个未来元素Aj一个完成。

      错误的属性B是一个空单元阵列,即使一个或多个元素一个遇到一个错误。

    • 否则,MATLAB运行Xm fcn (X1,…)使用输出X1,…, Xm从每个未来元素一个完成的元素。

      如果任何元素一个遇到错误,你指定PassFuture作为真正的,错误的属性B是一个单元阵列相同数量的元素一个

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

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

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

    例子:fcn = @magic

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

    • 如果您指定PassFuture作为真正的,n从运行是输出参数要求的数量吗fcn ((j))每个元素使用(j)未来数组一个

    • 否则,n从运行是输出参数要求的数量吗fcn (Y1,…, Ym)使用输出日元…,从每个元素Aj未来数组一个

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

    输出参数

    全部折叠

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

    • 使用fetchOutputs检索结果B

    • 使用afterEach毕竟一个函数运行时B完成。

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

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

    • 否则,如果任何元素一个遇到错误,错误的属性B是一个单元阵列相同数量的元素一个

    另请参阅

    ||