Tipo de matriz
Una matriz es un tipo de datos que contiene entre uno y dieciséis componentes escalares en una cuadrícula bidimensional. Cada componente de una matriz debe ser del mismo tipo.
Declaración de tipo
Puede declarar variables de matriz mediante el tipo escalar nombre del contenido de la matriz con el número de filas y columnas que contiene:
TypeRowsCols Name
Donde Type
es el tipo escalar de cada uno de los componentes, Rows
es una expresión de entero constante entre 1 y 4 inclusive que indica el número de filas, Cols
es una expresión entera constante entre 1 y 4 inclusive que indica el número de columnas y Name
es una cadena ASCII que identifica de forma única el nombre de la variable.
Ejemplos:
int1x1 iMatrix; // integer matrix with 1 row, 1 column, 1 single component
int4x1 iMatrix; // integer matrix with 4 rows, 1 column, 4 total components
int1x4 iMatrix; // integer matrix with 1 row, 4 columns, 4 total components
double3x3 dMatrix; // double matrix with 3 rows, 3 columns, 9 total components
float3x2 fMatrix = { 0.0f, 0.1f, // row 1
2.1f, 2.2f, // row 2
4.1f, 4.2f // row 3
};
Declaración de estilo de plantilla
Una sintaxis de declaración alternativa usa la palabra clave matrix
y los argumentos de plantilla para indicar el tipo escalar, el número de filas y el número de columnas:
matrix <Type=float, Rows=4, Cols=4> Name
Donde Type
es el tipo escalar de cada uno de los componentes, Rows
es un entero entre 1 y 4 inclusive que indica el número de filas, Cols
es un entero entre 1 y 4 inclusive que indica el número de columnas, pero se especifican entre corchetes angulares de estilo de plantilla.
Name
es una cadena ASCII que identifica de forma única el nombre de la variable.
Tenga en cuenta que los valores predeterminados del parámetro de plantilla permiten especificar matrtices de 4 columnas de un tipo determinado y recuento de filas dejando fuera del último parámetro, una matriz de 4x4 de un tipo determinado dejando fuera de los dos últimos parámetros de plantilla o matrices flotantes 4x4 dejando las tres.
Ejemplos:
matrix <int, 1, 1> iMatrix = { 1 };
matrix <float, 2, 3> fMatrix = { 0.0f, 0.1f, 0.2f, // row 1
2.1f, 2.2f, 2.3f // row 2
};
matrix<int16_t, 1> sMatrix = { 1, 2, 3, 4 }; // Defaults to 1x4 int16 matrix
matrix<float16_t> hMatrix = { 0.0f, 0.1f, 0.2f, 0.3f, // Defaults to 4x4 float16 matrix
1.0f, 1.1f, 1.2f, 1.3f,
2.0f, 2.1f, 2.2f, 2.3f,
3.0f, 3.1f, 3.2f, 3.3f };
matrix fMatrix = { 0.0f, 0.1f, 0.2f, 0.3f, // Defaults to 4x4 float matrix
1.0f, 1.1f, 1.2f, 1.3f,
2.0f, 2.1f, 2.2f, 2.3f,
3.0f, 3.1f, 3.2f, 3.3f };