Interpolate Matrix(x,y,z)
R2026bReturn interpolated matrix for given inputs
Libraries:
Aerospace Blockset /
GNC /
Control
Description
The Interpolate Matrix(x,y,z) block interpolates a three-dimensional array of matrices.
This three-dimensional case assumes the matrix is defined as a function of three independent variables:
x = [ x 1 x 2 x 3 ... x i x i+1 ... x n ]
y = [ y 1 y 2 y 3 ... y j y j+1 ... y m ]
z = [ z 1 z 2 z 3 ... z k z k+1 ... z p ]
For given values of x, y, and z, eight matrices are interpolated. Then for
x i < x < x i+1
y j < y < y j+1
z k < z < z k+1
the output matrix is given by
where the three interpolation fractions are denoted by
In the three-dimensional case, the interpolation is carried out first on x, then y, and finally z.
The matrix to be interpolated should be five-dimensional, the first two dimensions corresponding to the matrix at each value of x, y, and z. For example, if you have eight matrices A, B, C, D, E, F, G, and H defined at the following values of x, y, and z, then the corresponding input matrix is given by
(x = 0.0,y = 1.0,z = 0.1)
|
matrix(:,:,1,1,1) = A;
|
(x = 0.0,y = 1.0,z = 0.5)
|
matrix(:,:,1,1,2) = B;
|
(x = 0.0,y = 3.0,z = 0.1)
|
matrix(:,:,1,2,1) = C;
|
(x = 0.0,y = 3.0,z = 0.5)
|
matrix(:,:,1,2,2) = D;
|
(x = 1.0,y = 1.0,z = 0.1)
|
matrix(:,:,2,1,1) = E;
|
(x = 1.0,y = 1.0,z = 0.5)
|
matrix(:,:,2,1,2) = F;
|
(x = 1.0,y = 3.0,z = 0.1)
|
matrix(:,:,2,2,1) = G;
|
(x = 1.0,y = 3.0,z = 0.5)
|
matrix(:,:,2,2,2) = H;
|
Limitations
This block must be driven from the Prelookup block.
Ports
Input
Output
Parameters
Programmatic Use: Add Block
To add the block programmatically, use the add_block function with one of these library block paths as the source.
"aerolibschedule/Interpolate Matrix(x,y,z) "
Example: add_block("aerolibschedule/Interpolate Matrix(x,y,z) ","myModel/myBlock",MakeNameUnique="on")
Extended Capabilities
Version History
Introduced before R2006a
