主要内容

之后

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

    描述

    例子

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

    MATLAB®运行函数fcn使用中的每个元素的输出A. 如果未来数组AM元素,MATLAB运行函数M时代。预定的功能何时启动fcn完成Mth时间未来对象B完成。

    有关使用的详细信息,请参见之后要在函数在并行池上完成运行后运行它们,请参见使用afterEach和afterAll运行回调函数(并行计算工具箱)

    如果A遇到错误时错误性质B是一个单元数组,其元素数与A

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

    这个错误性质B是空单元格数组,即使其中有一个或多个元素A遇到错误。

    例子

    全部崩溃

    此示例演示如何使用之后调度回调函数在函数在后台运行后运行。

    使用帕菲尔运行函数兰特(1)并检索一个输出。指明backgroundPool作为在后台运行函数的第一个参数。重复10次以创建10个未来物体。

    对于i=1:10f(i)=帕菲瓦尔(背景池,@rand,1,1);结束

    之后未来完成后,使用disp函数。的输入参数disp是来自每个源的输出参数未来. 将第三个参数指定给之后充当0不从回调返回任何输出。

    每次之后(f,@disp,0);

    此示例演示如何使用之后使用后台运行的函数的进度更新等待栏。

    创建一个等待条,w

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

    设置您的迭代次数对于-循环,N. 存储当前已完成迭代的数量,0,以及总迭代次数,N,在用户数据属性的等待栏。

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

    经营对于-循环N迭代。在每次迭代中,使用帕菲尔backgroundPool运行暂停在背景中的随机秒数。存储每个未来数组中的对象。

    对于i=1:N延迟=rand;f(i)=parfeval(背景池,暂停,0,延迟);结束

    使用helper函数更新编辑栏每次更新后更新等待栏未来完成。

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

    使用删除完成所有操作后关闭等待栏未来对象完成。

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

    定义辅助函数

    定义辅助函数updateWaitbar.函数的第一个元素加1用户数据属性,然后使用向量计算进度。

    函数更新编辑栏(w)%使用UserData属性更新等待栏。%检查waitbar是否是对已删除对象的引用如果有效期(w)%增加已完成迭代的数量w、 UserData(1)=w.UserData(1)+1;%计算进度进度=w.UserData(1)/w.UserData(2);%更新等待栏waitbar(进度,w);结束结束

    输入参数

    全部崩溃

    输入未来对象,指定为平行。未来标量或数组。

    MATLAB运行该函数fcn在每个元素之后A完成。如果A遇到错误,请指定PassFuture作为真正的,之后仍然运行fcn使用该元素。

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

      这个错误性质B是空单元格数组,即使其中有一个或多个元素A遇到错误。

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

      如果A遇到错误,请指定PassFuture作为真正的,即错误性质B是一个单元数组,其元素数与A

    如果未来数组具有M元素,MATLAB运行函数M时代。预定的功能何时启动fcn完成后未来对象B完成。

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

    要运行的回调函数,指定为函数句柄。

    例子:fcn=@magic

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

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

    • 否则,,n是从运行中请求的输出参数数fcn(Y1,…,Ym)使用输出Y1,…,Ym从每个元素Aj未来数组A

    数据类型:单一的|双重的|int8|int16|int32|int64|uint8|uint16|uint32|uint64

    输出参数

    全部崩溃

    输出未来对象,返回为平行。未来对象。

    • 使用获取输出从中检索结果B

    • 使用之后毕竟来运行一个函数B完成。

    当您设置PassFuture,你改变错误性质B:

    • 如果PassFuture真正的,即错误性质B是空单元格数组,即使其中有一个或多个元素A遇到错误。

    • 否则,如果其中任何一个元素A遇到错误时错误性质B是一个单元数组,其元素数与A