MATLAB Answers

Add a waitbar to a function execution

2 ビュー (過去 30 日間)
Mario
Mario 2017 年 8 月 24 日
コメント済み: Adam 2017 年 8 月 25 日
Hi,
I wrote a function that uses a 3D stack of images as an input, and processes them. As a result of it, a new 3D matrix is created.
I am strugling to add a proper waitbar to this, since it can take from a few seconds to several minutes to complete this task inside this function (depending on the size of the input 3D matrix of images).
I tried several different solutions, but did not succeed.
My input is a stack of 3D images called QQ(MxNxP)
h = waitbar(0,'Please wait...');
steps=size(QQ, 3); %%to extract the number of images inside 3D matrix
for step = 1:steps
A=myFunction(QQ) %%my function goes here, not sure if I need to add something like A(:,:,step)=myFunction(QQ(:,:,step))
waitbar(step / steps)
end
close(h)
How can I properly define the waitbar in order to track execution time of my function?
Thanks!
  3 件のコメント
Samuel Vergara
Samuel Vergara 2017 年 8 月 24 日
Also, about: %%my function goes here, not sure if I need to add something like A(:,:,step)=myFunction(QQ(:,:,step)) As your code is written, you just replace the value of A by the same value "steps" times.

サインインしてコメントする。

回答 (1 件)

Stalin Samuel
Stalin Samuel 2017 年 8 月 24 日
編集済み: Stalin Samuel 2017 年 8 月 24 日
I have not found any error in the given code. I tested (Matlab 2017a) the code and wait bar working fine.Instead of your function ( myFunction(QQ) ) i used some delay.Below is the tested code
h = waitbar(0,'Please wait...');
steps=30; %%to extract the number of images inside 3D matrix
for step = 1:steps
pause(0.2) %%removed yuur function
A(:,:,step)=myFunction(QQ(:,:,step))
waitbar(step / steps)
end
close(h)
  4 件のコメント
Adam
Adam 2017 年 8 月 25 日
You'd need to post more code. The waitbar doesn't cause anything to happen other than the waitbar to update. Anything else is in the rest of your code.

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by