|
XMatREAL64 Class
|
double 형의 matrix 데이터 구조에 대한 클래스이다.
Inheritance Hierarchy
Namespace: Pixoneer.NXDLAssembly: NXDL (in NXDL.dll) Version: 2.0.3.38
Syntaxpublic class XMatREAL64 : IDisposable
The XMatREAL64 type exposes the following members.
Constructors
Properties
Methods | Name | Description |
---|
 | Alloc | 행렬의 크기로 배열의 메모리를 할당한다. |
 | Copy | 매개변수 행렬의 값으로 설정한다. |
 | Free | XMatREAL64 객체의 메모리를 해제한다. |
 | GetAt | 행렬의 원소값을 가져온다. |
 | Identity | 단위행렬로 초기화한다. 정방행렬이 아닌 경우 가능한 대각 요소만 1로 한다. |
 | Inverse | 가우스 소거법을 이용하여 역행렬로 변환한다. (배정도 실수 유효숫자를 고려하여 부정확한 결과가 예상되는 경우 InverseP() 사용을 추천함) |
 | InverseL | 다음과 같이 행렬의 왼쪽에 곱해서 단위행렬이 얻어지는 행렬로 변환한다. Left Inverse: ((AT*A)'*AT)*A = I |
 | InverseP | 특이값 분해(SVD)를 통해 의사 역행렬(Pseudo inverse)로 변환한다. |
 | InverseR | 다음과 같이 행렬의 오른쪽에 곱해서 단위행렬이 얻어지는 행렬로 변환한다. Right Inverse: A*(AT*(A*AT)' = I |
 | SetAt | 행렬의 원소값을 설정한다. |
 | Transpose | 행렬의 행과 열의 요소를 바꾼다. |
 | Zerorize | 행렬의 값을 0으로 초기화한다. |
Top
Operators
Example
다음은 XMatREAL64를 사용하는 방법에 대한 예제이다.
XMatREAL64 matrix = new XMatREAL64(3, 3);
int rsize = matrix.RowSize;
int csize = matrix.ColumnSize;
matrix.SetAt(0, 0, 0.232044);
matrix.SetAt(0, 1, 0.924511);
matrix.SetAt(0, 2, 0.93634);
matrix.SetAt(1, 0, 0.881185);
matrix.SetAt(1, 1, 0.05349);
matrix.SetAt(1, 2, 0.158078);
matrix.SetAt(2, 0, 0.891095);
matrix.SetAt(2, 1, 0.40391);
matrix.SetAt(2, 2, 0.778751);
XMatREAL64 matrixInv = new XMatREAL64();
XMatREAL64 matrixTrans = new XMatREAL64();
matrixInv.Copy(matrix);
matrixTrans.Copy(matrix);
matrixTrans.Transpose();
double det = matrixInv.Inverse();
if (det == 0.0) Console.WriteLine("Inverse Failed");
for (int y = 0; y < matrixInv.RowSize; y++)
{
for (int x = 0; x < matrixInv.ColumnSize; x++)
{
Console.WriteLine("matrixInv (" + y + ", " + x + ") : " + matrixInv.GetAt(y, x));
}
}
for (int y = 0; y < matrixTrans.RowSize; y++)
{
for (int x = 0; x < matrixTrans.ColumnSize; x++)
{
Console.WriteLine("matrixTrans (" + y + ", " + x + ") : " + matrixTrans.GetAt(y, x));
}
}
See Also