Persistent Data for Lookup Tables in Simulink

How to speed up Simulink models that use large lookup tables.
Updated 20 May 2018

View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

Loading large lookup tables in Simulink models can be the bottle neck for the simulation speed. This is more important when you cannot load a lookup table into the base workspace or model workspace when you build a Simulink library. When you don't know how the library will be used, loading data into the base or model workspace can cause problems and thus it is bad practice to do so. This set of files shows how to load a lookup table in the mask initialization of a subsystem block and then save it to UserData. On subsequent runs, the data stored in UserData is used for the lookup table. The speed up is 10-50x.

The methodology will work in very old versions of MATLAB. However, the Simulink files attached are 2018a.

Cite As

Jason Nicholson (2024). Persistent Data for Lookup Tables in Simulink (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2018a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Find more on Modeling in Help Center and MATLAB Answers

Community Treasure Hunt

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

Start Hunting!
Version Published Release Notes

Added images for simulink models.

with persistence picture wasn't up to date.
typo correction
picture wasn't sized right.
Changed z value to non breakpoint value. This causes the more calculations to be done the if the z value is a breakpoint.
Remade pictures.

Forgot to attach the files on the last update

Added checking for a slice of the table data. This shortens the calculation time.
Fixed typos.
Reran analysis. Conclusions still the same.
switch to a published script because it looks better than the live script.
Editing the published HTML.
More edits of the HTML

Trying to get the HTML to render right.
adding a picture
HTML edit