How do I use the "Matrix Interpolation" Simulink block?

8 views (last 30 days)

I’m trying to use the Matrix Interpolation block (Matrix Interpolation - Interpolate between matrices - Simulink) in Simulink, and I’d appreciate your guidance on how to set it up.
I have three 4×4 matrices—A, B, and C—which correspond to speeds of 0 m/s, 10 m/s, and 18 m/s, respectively. I would like to perform linear interpolation between these matrices based on a varying speed input, using breakpoints at 0, 10, and 18 m/s.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 16 Jun 2025
In summary, the Matrix Interpolation block functions as follows:
  • The Matrix Interpolation block takes the precalculated interpolation index (i.e. which two breakpoints the velocity is between) and the interpolation fraction (i.e. how far between the breakpoints the velocity is) as input. NOTE: This index starts from 0 (not 1 as you might expect). 
  • It takes the matrices for interpolation as the parameter “Table Data”. In our case, this is a 4x4x3 matrix. It is composed of three 4x4 matrices, each of which corresponds to A, B, C. You can think of this as A, B, C stacked on top of each other.
To help illustrate this, here is a simple example Simulink model in MATLAB R2024b (“MatrixInterpolationExample.slx”), with an attached helper file ("loadInterpolationMatrix.m"). Here's an explanation of this example model in the context of what I’ve explained above:
  • The Matrix Interpolation block takes the precalculated interpolation index (i.e. which two breakpoints the velocity is between) and the interpolation fraction (i.e. how far between the breakpoints the velocity is) as input. NOTE: This index starts from 0 (not 1 as you might expect). 
    • The MATLAB Function block “Calculate Index and Fraction” calculates these values from the velocity value and the interpolation breakpoints.
  • It takes the matrices for interpolation as the parameter “Table Data”. In our case, this is a 4x4x3 matrix. It is composed of three 4x4 matrices, each of which corresponds to A, B, C. You can think of this as A, B, C stacked on top of each other.
    • The parameter “Table Data” is defined as the variable interpolationMatrix.
    • The values in interpolationMatrix are defined in the MATLAB script “loadInterpolationMatrix.m”, which I have configured to run when the model is opened or updated (in the model callback InitFcn).
    • Make sure to open "MatrixInterpolationExample.slx" in the same directory as "loadInterpolationMatrix.m" for this to function.
The output of the Matrix Interpolation block is displayed in the Display block.

More Answers (0)

Categories

Find more on Simulink Functions in Help Center and File Exchange

Products


Release

R2024b

Community Treasure Hunt

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

Start Hunting!