Listen for task progress on matlab

2 views (last 30 days)
Lola on 15 Jun 2022
Edited: ILoveMATLAB on 16 Jun 2022
Hello. I want to know the progress when I execute matlab code. I am reading numeric data from a csv file, plotting this data, and then writing the data to a excel sheet. I want to add a progress bar for each of these tasks on GUI created in app designer because there is a lag time when reading and writing executed so I do not know when the task is complete. I am not sure how to do this. Below is the code i have thus far. Please assist.
col_vec=data{:2}; plot(app.UIAxes,col_vec);
app.ProgressBar.startProgress("The task is starting...");
app.ProgressBar.setProgress(0.20),"The task is running...");
app.ProgressBar.finishProgress("The task is finished");

Answers (1)

ILoveMATLAB on 16 Jun 2022
If you have an app you can just use uiprogressdlg.
function myprogress1
fig = uifigure;
d = uiprogressdlg(fig,'Title','Please Wait',...
'Message','Opening the application');
% Perform calculations
% ...
d.Value = .33;
d.Message = 'Loading your data';
% Perform calculations
% ...
d.Value = .67;
d.Message = 'Processing the data';
% Finish calculations
% ...
d.Value = 1;
d.Message = 'Finishing';
% Close dialog box
ILoveMATLAB on 16 Jun 2022
Edited: ILoveMATLAB on 16 Jun 2022
It would easier for you to understand if you ran the code. Nevertheless, value is the percent complete that you want to display. 0.33 means the progess bar will be 33% long. The message is the progess bar message.
Yes, the example shows that you can continue to update the progress bar after a calculation. The pause function is just a placeholder. You can replace the pause function with your calculation.
Please run and step through the example.

Sign in to comment.


Find more on Startup and Shutdown in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!