進捗報告テキストのリアルタイム表示
20 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
junya ishii
le 20 Oct 2022
Déplacé(e) : Atsushi Ueno
le 20 Oct 2022
コマンドウィンドウにdispで表示させる以外での,プログラムの進捗具合を文章で報告する方法を探しています.
私は普段,
clc
disp('PartA......')
clc
disp('PartB......')
clc
disp('PartC......')
のように数秒では終わらないプログラムの進捗を確かめるためにコマンドウィンドウに表示させていますが,わけあってこれとは違う方法を探しています.可能であるならば,もう一つの文章を表示させる第二のコマンドウィンドウを作り,そこにdispさせるのが理想ですが,手段がありません.
簡単に思いつく最も愚直な方法は,figureを作成しclfした後textで文章を表示,drawnowで更新ですが,少々芸に欠けると思います.
diaryなどで.txtに書き込むようにし,予めそのテキストファイルを開いたままプログラムを実行しても,ファイルは逐次更新されず,開いた時点のままです.
なにかスマートな解決策はありませんか?
0 commentaires
Réponse acceptée
Hernia Baby
le 20 Oct 2022
waitbar をお使いください。
f = waitbar(0,'Please wait...');
pause(.5)
waitbar(.33,f,'Loading your data');
pause(1)
waitbar(.67,f,'Processing your data');
pause(1)
waitbar(1,f,'Finishing');
pause(1)
close(f)
2 commentaires
Atsushi Ueno
le 20 Oct 2022
Déplacé(e) : Atsushi Ueno
le 20 Oct 2022
fig = uifigure;
d = uiprogressdlg(fig,'Icon','membrane.png');
d.Title = '進捗報告テキストのリアルタイム表示';
d.Message = '進捗具合を文章で報告する方法を探しています';
d.Cancelable = "on"; % キャンセルボタン表示
d.Indeterminate = "on"; % 不確定型進行状況
pause(5);
d.Indeterminate = "off";
d.Value = .25; d.Message = 'PartA......'; pause(1);
d.Value = .50; d.Message = 'PartB......'; pause(1);
d.Value = .75; d.Message = 'PartC......'; pause(1);
d.Value = 1; d.Message = 'uiprogressdlg関数!'; pause(3);
close(d); close(fig);
Atsushi Ueno
le 20 Oct 2022
% > App Designer 内および関数 uifigure で作成されたアプリ内では、
% > waitbar よりも uiprogressdlg の方が、追加のカスタマイズ オプションを使用できるため推奨されます。
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur uifigure ベースのアプリ dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!