Loading data in the background?

3 views (last 30 days)
Sean
Sean on 6 Aug 2012
I have a set of code that does the following:
  1. Load a set of data
  2. Display the data
  3. Wait for the operator to make a judgement on the data.
  4. Record the user's judgement
  5. Repeat steps 1-4 for the next set of data (hundreds of datasets).
I have found that it takes about 5-10 seconds to load each dataset, and about 10-15 seconds for the user to make the judgement call. Unfortunately, the user is sitting idle while waiting for the data to load between sets.
Does anyone know how to load a .mat file in the background so that the next dataset can be loading while the user is in the process of making his/her judgement?
Thanks in advance.
  5 Comments
Sean
Sean on 7 Aug 2012
Edited: Sean on 7 Aug 2012
It looks like I may have run into a fundamental limitation of matlab. :(
The data that I am using is displayed to the user as changing over time (which requires matlab to be actively updating the gui continuously). Since the load function cannot be interrupted or loaded in a separate thread, I guess I just have to live with the load time wait between data segments.
Thanks for considering my problem.
per isakson
per isakson on 7 Aug 2012
AFAIK: it's in the Parallel Toolbox

Sign in to comment.

Answers (1)

Jan
Jan on 19 Aug 2012
TIMER objects seem to run in an own thread. Therefore you could load the data in a TIMER callback. But as usual for parallel programming, you have to be smart to avoid collisions between read and write access to the data.
  2 Comments
Sean
Sean on 20 Aug 2012
I have tried implementing a bit of test code to check on the idea that an independent timer could load the data in parallel, but the main code and the timer that I use to scroll through the current data both stop during the load (and continue after load completion).
Maybe I'm missing something, but it doesn't seem like putting the load in a timer callback causes it to run in an independent thread. Is this supposed to be default behavior, or is there something that needs to be set to make it behave this way?
Sean de Wolski
Sean de Wolski on 20 Aug 2012
I had the same thing happen when using the timer.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!