Reading from large workspace array slows down my Simulink simulation

1 view (last 30 days)
I have a large workspace array sized ~200x500x4000. This contains data for 4000 uint8 images captured with a camera. If I were to change the size of my workspace array to say 200x500x8 my simulation takes about 30 seconds per image. If I try to run with the full sized 4000 element array it takes over 5 minutes per image.
I have to read this array in a matlab function block in my Simulink model where I parse the data and output a few pixels of data at a time to the rest of the model.
What is the recommended way to deal with large datasets like this? I tried storing my data in a .mat file and using the matfile function to load parts of it at a time but when I try to use the matfile function in my Matlab function block I get an error that matfile is not supported for code generation. I am running in Normal mode, running in Accelerated mode did not result in an improvement.

Accepted Answer

Michael
Michael on 22 May 2019
Solved. I ended up using a data store block in Simulink to access my large array as a global variable. Running in accelerated mode I was able to get my simulation time down to ~10 seconds per frame
https://www.mathworks.com/help/releases/R2011b/toolbox/simulink/ug/bsds2rv.html#bsdud7d-1

More Answers (0)

Tags

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!