# Interpolate Matrix(x)

Return interpolated matrix for given input

GNC/Controls

## Description

The Interpolate Matrix(x) block interpolates a one-dimensional array of matrices.

This one-dimensional case assumes a matrix M is defined at a discrete number of values of an independent variable

x = [ x1 x2 x3 ... xi xi+1 ... xn ].

Then for xi < x < xi+1, the block output is given by

`$\left(1-\lambda \right)M\left({x}_{i}\right)+\lambda M\left({x}_{i+1}\right)$`

where the interpolation fraction is defined as

`$\lambda =\left(x-{x}_{i}\right)/\left({x}_{i+1}-{x}_{i}\right)$`

The matrix to be interpolated should be three dimensional, the first two dimensions corresponding to the matrix at each value of x. For example, if you have three matrices A, B, and C defined at `x = 0`, `x = 0.5`, and `x = 1.0`, then the input matrix is given by

`matrix(:,:,1) = A;`

`matrix(:,:,2) = B;`

`matrix(:,:,3) = C;`

## Parameters

Matrix to interpolate

Matrix to be interpolated, with three indices and the third index labeling the interpolating values of x.

## Inputs and Outputs

InputDimension TypeDescription

First

Contains the interpolation index i.

Second

Contains the interpolation fraction λ.

OutputDimension TypeDescription

First

Contains the interpolated matrix.

## Assumptions and Limitations

This block must be driven from the Simulink® Prelookup block.

## Examples

See the following block reference pages: 1D Controller [A(v),B(v),C(v),D(v)], 1D Observer Form [A(v),B(v),C(v),F(v),H(v)], and 1D Self-Conditioned [A(v),B(v),C(v),D(v)].