Matris Türü
Matris, iki boyutlu bir kılavuzda bir ile on altı skaler bileşenleri içeren bir veri türüdür. Matrisin her bileşeni aynı türde olmalıdır.
Tür Bildirimi
Matrisin içeriğinin skaler türünü adını ve içerdiği satır ve sütun sayısını kullanarak matris değişkenlerini bildirebilirsiniz:
TypeRowsCols Name
Type
her bileşenin skaler tür olduğunda, Rows
1 ile 4 arasında satır sayısını belirten sabit bir tamsayı ifadesidir; Cols
1 ile 4 arasında sütun sayısını belirten sabit bir tamsayı ifadesidir ve Name
değişken adını benzersiz olarak tanımlayan bir ASCII dizesidir.
Örnekler:
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
};
Şablon Stili Bildirim
Alternatif bildirim söz diziminde skaler türü, satır sayısı ve sütun sayısını belirtmek için matrix
anahtar sözcüğü ve şablon bağımsız değişkenleri kullanılır:
matrix <Type=float, Rows=4, Cols=4> Name
burada Type
her bileşenin skaler tür, Rows
satır sayısını belirten 1 ile 4 arasında bir tamsayıdır; Cols
sütun sayısını belirten 1 ile 4 arasında bir tamsayıdır, ancak bunlar şablon stili köşeli ayraçlar içinde belirtilir.
Name
, değişken adını benzersiz olarak tanımlayan bir ASCII dizesidir.
Şablon parametresi varsayılanlarının, son parametreden, son iki şablon parametresinden veya 4x4 float matrislerinden ayrılarak son parametreden, belirli bir türdeki 4x4 matristen veya üçünü de atlayarak 4x4 float matrislerinden ayrılarak belirli bir tür ve satır sayısının 4 sütunlu matrislerinin belirtilmesine izin verdiğini unutmayın.
Örnekler:
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 };