Listen for task progress on matlab
12 次查看(过去 30 天)
显示 更早的评论
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.
Data=readtable('data.csv',NumHeaderLines',10);
col_vec=data{:2}; plot(app.UIAxes,col_vec);
xlswrite('Data.xls',col_vec,sheet,'HR','Range','A1');
app.ProgressBar.startProgress("The task is starting...");
pause(5)
app.ProgressBar.setProgress(0.20),"The task is running...");
app.ProgressBar.finishProgress("The task is finished");
0 个评论
回答(1 个)
ILoveMATLAB
2022-6-16
If you have an app you can just use uiprogressdlg.
function myprogress1
fig = uifigure;
d = uiprogressdlg(fig,'Title','Please Wait',...
'Message','Opening the application');
pause(.5)
% Perform calculations
% ...
d.Value = .33;
d.Message = 'Loading your data';
pause(1)
% Perform calculations
% ...
d.Value = .67;
d.Message = 'Processing the data';
pause(1)
% Finish calculations
% ...
d.Value = 1;
d.Message = 'Finishing';
pause(1)
% Close dialog box
close(d)
end
2 个评论
ILoveMATLAB
2022-6-16
编辑:ILoveMATLAB
2022-6-16
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Import and Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!