Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Can a GUI timer be made to regularly update during long calculations?

Asked by Tim Lewis on 15 Oct 2012

I have a GUI that runs a program that takes anywhere between a few minutes and a few hours to run and I would like to add a timer to the GUI so I can see how long the program has been running since it started. The program spends the majority of its time in the Symbolic Math Toolbox (~90%), and there are no significant portions of time spent in a loop during execution.

In order to accomplish this (in a way that updates regularly without slowing the original program down), I believe the Parallel Computing Toolbox would have to be utilized, but I don't have any experience with this.

Is there anyone here that might know how this could be accomplished, or if it's even possible?

0 Comments

Tim Lewis

Tags

Products

2 Answers

Answer by Sean de Wolski on 4 Jan 2013
Accepted answer

Hi Tim,

You could use a timer on the main thread and then use batch() (from PCT) to run the feval() command on a worker(s) that was opened with matlabpool()

1 Comment

Tim Lewis on 12 Feb 2013

That may work. I will have to give it a try. Thanks for your help!

Sean de Wolski
Answer by Loren Dean on 4 Jan 2013

The timer object in MATLAB (>> help timer) is probably your best bet. Just initialize it when the GUI launches or the program starts and then have it callback to display the runtime.

1 Comment

Tim Lewis on 4 Jan 2013

Thanks for your reply!

I don't think the timer function can run in parallel with another function apart from the Parallel Computing Toolbox. This is basically what needs to happen since probably 90% of the calculation time is spent in the following commands:

 feval(symengine,'reset');
 feval(symengine,'read','"MyProgram.mu"');

Where "MyProgram.mu" is the name of a user-defined MuPAD procedure file being evaluated by Matlab's Symbolic Math Toolbox.

Therefore, I believe that I need to be running the timer function in parallel with the main calculation, but I do not have enough experience with the Parallel Computing Toolbox to be able to figure this out. I was hoping that someone on here might be able to help me.

Loren Dean

Contact us