행렬과 벡터
행렬은 double, float 또는 복소수의 2차원 배열입니다.
벡터는 double, float 또는 복소수의 1차원 배열입니다. 벡터는 벡터가 수직인지 수평인지 구분하지 않습니다. 수직인지 수평인지의 구분은 사용 컨텍스트에서 결정됩니다. 예를 들어 벡터 연산 Dot의 경우 왼쪽 벡터가 수평이고 오른쪽 벡터가 수직이라고 가정합니다. 유형 표시가 필요한 경우 1행 또는 1열 행렬을 사용할 수 있습니다. 하지만 이것은 일반적으로 필요하지 않습니다.
행렬과 벡터는 데이터를 저장하는 메모리를 동적으로 할당합니다. 그러나 행렬과 벡터는 차원이 있는 데이터 유형과 같은 특정한 속성을 가진 객체입니다. 행렬 및 벡터 속성은 vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond() 등과 같은 메서드를 사용하여 얻을 수 있습니다. 모든 차원은 변경될 수 있습니다.
행렬을 생성하고 초기화할 때는 소위 정적 메소드가 사용됩니다(이는 클래스의 정적 메소드와 유사함). 예: matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix: :Zeros(), vector::Zeros(), matrix::Full(), vector::Full(), matrix::Tri().
현재로서는 이 개발 방향이 아직 완성되지 않습니다. 이로 인해 행렬 및 벡터 연산은 복합 데이터 유형의 사용을 의미하지 않습니다.
MQL5는 행렬 및 벡터를 DLL로 전달하는 것을 지원합니다. 이를 통해 외부 변수에서 관련 유형을 활용하는 함수를 가져올 수 있습니다.
행렬과 벡터는 버퍼에 대한 포인터로 DLL에 전달됩니다. 예를 들어 float 유형의 행렬을 전달하려면 DLL에서 내보낸 함수의 해당 매개변수가 float 유형의 버퍼 포인터를 가져야 합니다.
MQL5
#import "mmlib.dll"
|
C++
extern "C" __declspec(dllexport) bool sgemm(UINT flags, float *C, const float *A, const float *B, UINT64 M, UINT64 N, UINT64 K, float alpha, float beta) |
버퍼 외에도 올바른 처리를 위해 행렬 및 벡터의 크기를 전달해야 합니다.
모든 행렬 및 벡터의 메서드는 아래에 알파벳순으로 나열되어 있습니다.
함수 |
액션 |
카테고리 |
---|---|---|
활성화 함수 값을 계산하고 전달된 벡터/행렬에 씁니다. |
||
최대값의 인덱스를 반환 |
||
최소값의 인덱스를 반환 |
||
정렬된 인덱스를 반환 |
||
자동 캐스트로 행렬, 벡터 또는 배열을 복사 |
||
행렬/벡터 값의 가중 평균 계산 |
||
촐레스키 분해 계산 |
||
행렬/벡터의 요소를 주어진 유효한 값 범위로 제한 |
||
열 벡터를 반환. 지정된 열에 벡터를 작성. |
||
행렬의 열 수 반환 |
||
지정된 정밀함으로 두 행렬/벡터의 요소를 비교 |
||
두 행렬/벡터의 요소를 유효 숫자 정밀도로 비교 |
||
행렬의 조건수 계산 |
||
두 벡터의 불연속 선형 컨벌루션을 반환 |
||
주어진 행렬/벡터의 복사본을 반환 |
||
지정된 양의 지정된 기호 기간의 MqlRates 구조의 과거 시리즈를 행렬 또는 벡터로 가져옵니다. |
||
틱을 MqlTick 구조에서 행렬 또는 벡터로 가져오기 |
||
지정된 날짜 범위 내에서 MqlTick 구조에서 행렬 또는 벡터로 틱 가져오기 |
||
Pearson 상관 계수 계산(선형 상관 계수) |
||
두 벡터의 상호 상관을 계산 |
||
공분산 행렬 계산 |
||
주어진 축을 따라 있는 요소를 포함하여 행렬/벡터 요소의 누적 곱을 반환 |
||
주어진 축을 따라 있는 요소를 포함하여 행렬/벡터 요소의 누적 합계를 반환 |
||
활성화 함수 도함수 값을 계산하고 이들을 전달된 벡터/행렬에 씁니다. |
||
정사각형 가역 행렬의 행렬식을 계산 |
||
대각선 추출 또는 대각선 행렬 구성 |
||
두 벡터의 내적 |
||
정사각형 행렬의 고유값과 오른쪽 고유벡터를 계산 |
||
일반 행렬의 고유값을 계산 |
||
대각선에 1이 있고 이외의 곳에 0이 있는 행렬을 반환 |
||
지정된 값으로 기존 행렬 또는 벡터 채우기 |
||
두 개가 아닌 하나의 인덱스를 통해 행렬 요소에 액세스 |
||
주어진 값으로 채워진 새로운 행렬을 생성하고 반환 |
||
GeMM(General Matrix Multiply) 메서드는 두 행렬의 일반 곱셈을 구현합니다. |
||
행렬/벡터에서 NaN 수를 반환 |
||
행렬을 여러 부분 행렬로 수평 분할 axis=0으로 Split과 동일 |
||
지정된 크기의 항등 행렬을 생성 |
||
행렬 또는 벡터 초기화 |
||
두 행렬의 내적 |
||
Jordan-Gauss 메서드로 정사각형 가역 행렬의 곱셈 역행렬을 계산 |
||
두 행렬, 행렬과 벡터, 벡터와 행렬 또는 두 벡터의 Kronecker 곱을 반환 |
||
계산된 선형 회귀 값으로 벡터/행렬을 계산합니다 |
||
손실 함수 값을 계산하고 전달된 벡터/행렬에 씁니다. |
||
선형 대수 방정식의 최소제곱해를 반환(비제곱 또는 축퇴 행렬의 경우). |
||
행렬의 LU 분해 구현: 하부 삼각 행렬과 상부 삼각 행렬의 곱 |
||
행 순열만 있는 LU 분해를 참조하는 부분 순열을 사용하여 LUP 분해를 구현: PA=LU |
||
두 행렬의 행렬 곱 |
||
행렬/벡터의 최대값 반환 |
||
요소 값의 산술 평균 계산 |
||
행렬/벡터 요소의 중앙값 계산 |
||
행렬/벡터의 최소값 반환 |
||
행렬 또는 벡터 놈 반환 |
||
1로 채워진 새 행렬을 만들고 반환 |
||
두 행렬 또는 두 벡터의 외적 계산 |
||
지정된 축을 따라 행렬/벡터 요소 또는 요소 값의 지정된 백분위수를 반환 |
||
Moore-Penrose 방법으로 행렬의 유사 역행렬을 계산 |
||
정사각 행렬을 정수 거듭제곱으로 올림 |
||
주어진 축에 대해서도 실행할 수 있는 행렬/벡터 요소의 곱을 반환 |
||
행렬/벡터 또는 주어진 행렬 축의 값의 범위를 반환 |
||
행렬의 qr 인수분해를 계산 |
||
지정된 축을 따라 행렬/벡터 요소 또는 요소 값의 지정된 분위수를 반환 |
||
가우스 방법을 사용하여 행렬 순위 반환 |
||
지정된 데이터 배열에 구성된 회귀선의 편차 오류로 회귀 메트릭을 계산 |
||
데이터를 변경하지 않고 행렬의 모양 변경 |
||
모양과 크기가 변경된 새 행렬 반환 |
||
행 벡터를 반환 |
||
행렬의 행 수를 반환 |
||
지정된 인덱스로 벡터 요소의 값을 정합니다 |
||
벡터의 크기를 반환 |
||
행렬의 행렬식의 부호와 로그를 계산 |
||
선형 행렬 방정식 또는 선형 대수 방정식 시스템 풀기 |
||
place별로 정렬 |
||
행렬곱 AT*A의 고유값 집합으로 행렬의 스펙트럼을 계산 |
||
행렬을 여러 부분 행렬로 분할 |
||
지정된 축을 따라 행렬/벡터 요소 또는 요소 값의 표준 편차를 반환 |
||
주어진 축(축)에 대해서 실행할 수 있는 행렬/벡터 요소의 합을 반환 |
||
특이값 분해 |
||
행렬의 열을 바꿈 |
||
행렬에서 행을 서로 바꿈 |
||
행렬의 대각선을 따라 합계를 반환 |
||
전치(축 교환) 및 수정된 행렬 반환 |
||
지정된 대각선 이하에 1이 있고 다른 위치에 0이 있는 행렬을 구성 |
||
k번째 대각선 위의 요소가 0인 행렬의 복사본을 반환 Lower triangular matrix |
||
k 번째 대각선 아래의 요소가 0인 행렬의 복사본을 반환 Upper triangular matrix |
||
행렬/벡터 요소 값의 분산 계산 |
||
행렬을 세로로 여러 부분 행렬로 분할 axis=1로 Split과 동일 |
||
0으로 채워진 새 행렬을 만들고 반환 |