Interpolate Matrix(x,y,z)
Return 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
Extended Capabilities
Version History
Introduced before R2006a