Compartir a través de


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 }; 

Consulte también

tipos de datos (DirectX HLSL)