异步更新用户界面使用afterEach
而且毕竟
这个例子展示了如何在计算完成时更新用户界面。当您将计算卸载给使用parfeval
,当工作人员执行这些计算时,所有用户界面都是响应式的。在本例中,使用waitbar
创建一个简单的用户界面。
使用
afterEach
在每次计算完成后更新用户界面。使用
毕竟
在所有计算完成后更新用户界面。
使用waitbar
要创建一个数字句柄,h
.当你使用afterEach
或毕竟
,waitbar
函数更新图形句柄。有关句柄对象的详细信息,请参见处理对象行为.
H = waitbar(0,“等……”);
使用parfeval
计算随机矩阵特征值的实部。使用默认首选项,parfeval
如果尚未创建并行池,则自动创建并行池。
为idx = 1:10 0 f (idx) = parfeval (@ (n)真实(eig (randn (n))), 1、5 e2);结束
你可以使用afterEach
的每个结果上自动调用函数parfeval
计算。使用afterEach
在每个future完成后,计算每个输出数组中的最大值。
maxFuture = afterEach(f,@max,1);
您可以使用状态
财产获得期货地位。创建一个逻辑数组,其中状态
期货的性质f
是“完成”
.使用的意思是
计算成品期货的比例。然后,创建一个匿名函数updateWaitbar
.该函数改变的分数等待条的长度h
到成品期货的比例。
updateWaitbar = @(~) waitbar(mean({f.)州}= =“完成”), h);
使用afterEach
而且updateWaitbar
在每个future in之后更新分数等待条长度maxFuture
完成。使用毕竟
而且删除
在所有计算完成后关闭等待栏。
updateWaitbarFutures = afterEach(f,updateWaitbar,0);毕竟(updateWaitbarFutures @(~)删除(h), 0);
使用毕竟
而且柱状图
中显示结果的直方图maxFuture
在所有的期货完成之后。
showsHistogramFuture = afterAll(maxFuture,@直方图,0);