主要内容

このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

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を使用して各出力配列内の最大値を計算します。

maxFuture = afterEach(f,@max,1);

状态プロパティを使用して,未来のステ,タスを取得できます。fの未来の状态プロパティが“完成”である逻辑配列を作成します。的意思是を使用して,終了した未来の割合を計算します。次に,無名関数updateWaitbarを作成します。関数は,hのウェ▪▪トバ▪の割合の長さを,終了した▪未来▪の割合に変更します。

updateWaitbar = @(~) waitbar(mean({f.)州}= =“完成”), h);

maxFutureの各未来が完了するたびに,afterEachupdateWaitbarを使用してウェ▪▪トバ▪▪の割合の長さを更新します。すべての計算が完了したら,毕竟删除を使用してウェ▪▪トバ▪▪を閉じます。

updateWaitbarFutures = afterEach(f,updateWaitbar,0);毕竟(updateWaitbarFutures @(~)删除(h), 0);

すべての未来が完了したら,毕竟柱状图を使用してmaxFutureの結果のヒストグラムを表示します。

showsHistogramFuture = afterAll(maxFuture,@直方图,0);

参考