행렬과 벡터

행렬은 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"
bool sgemm(uint flagsmatrix<float> &C, const matrix<float> &A, const matrix<float> &Bulong Mulong Nulong Kfloat alphafloat beta);
#import

C++

extern "C" __declspec(dllexportbool sgemm(UINT flagsfloat *Cconst float *Aconst float *BUINT64 MUINT64 NUINT64 Kfloat alphafloat beta)

버퍼 외에도 올바른 처리를 위해 행렬 및 벡터의 크기를 전달해야 합니다.

모든 행렬 및 벡터의 메서드는 아래에 알파벳순으로 나열되어 있습니다.

함수

액션

카테고리

Activation

활성화 함수 값을 계산하고 전달된 벡터/행렬에 씁니다.

머신 러닝

ArgMax

최대값의 인덱스를 반환

통계

ArgMin

최소값의 인덱스를 반환

통계

ArgSort

정렬된 인덱스를 반환

조작

Assign

자동 캐스트로 행렬, 벡터 또는 배열을 복사

초기화

Average

행렬/벡터 값의 가중 평균 계산

통계

Cholesky

촐레스키 분해 계산

변환

Clip

행렬/벡터의 요소를 주어진 유효한 값 범위로 제한

조작

Col

열 벡터를 반환. 지정된 열에 벡터를 작성.

조작

Cols

행렬의 열 수 반환

기능

Compare

지정된 정밀함으로 두 행렬/벡터의 요소를 비교

조작

CompareByDigits

두 행렬/벡터의 요소를 유효 숫자 정밀도로 비교

조작

Cond

행렬의 조건수 계산

기능

Convolve

두 벡터의 불연속 선형 컨벌루션을 반환

Copy

주어진 행렬/벡터의 복사본을 반환

조작

CopyIndicatorBuffer

지정된 지표의 지정된 양의 버퍼를 벡터로 가져오기

초기화

CopyRates

지정된 양의 지정된 기호 기간의 MqlRates 구조의 과거 시리즈를 행렬 또는 벡터로 가져옵니다.

초기화

CopyTicks

틱을 MqlTick 구조에서 행렬 또는 벡터로 가져오기

초기화

CopyTicksRange

지정된 날짜 범위 내에서 MqlTick 구조에서 행렬 또는 벡터로 틱 가져오기

초기화

CorrCoef

Pearson 상관 계수 계산(선형 상관 계수)

Correlate

두 벡터의 상호 상관을 계산

Cov

공분산 행렬 계산

CumProd

주어진 축을 따라 있는 요소를 포함하여 행렬/벡터 요소의 누적 곱을 반환

통계

CumSum

주어진 축을 따라 있는 요소를 포함하여 행렬/벡터 요소의 누적 합계를 반환

통계

Derivative

활성화 함수 도함수 값을 계산하고 이들을 전달된 벡터/행렬에 씁니다.

머신 러닝

Det

정사각형 가역 행렬의 행렬식을 계산

기능

Diag

대각선 추출 또는 대각선 행렬 구성

조작

Dot

두 벡터의 내적

Eig

정사각형 행렬의 고유값과 오른쪽 고유벡터를 계산

변환

EigVals

일반 행렬의 고유값을 계산

변환

Eye

대각선에 1이 있고 이외의 곳에 0이 있는 행렬을 반환

초기화

Fill

지정된 값으로 기존 행렬 또는 벡터 채우기

초기화

Flat

두 개가 아닌 하나의 인덱스를 통해 행렬 요소에 액세스

조작

Full

주어진 값으로 채워진 새로운 행렬을 생성하고 반환

초기화

GeMM

GeMM(General Matrix Multiply) 메서드는 두 행렬의 일반 곱셈을 구현합니다.

HasNan

행렬/벡터에서 NaN 수를 반환

조작

Hsplit

행렬을 여러 부분 행렬로 수평 분할 axis=0으로 Split과 동일

조작

Identity

지정된 크기의 항등 행렬을 생성

초기화

Init

행렬 또는 벡터 초기화

초기화

Inner

두 행렬의 내적

Inv

Jordan-Gauss 메서드로 정사각형 가역 행렬의 곱셈 역행렬을 계산

솔루션

Kron

두 행렬, 행렬과 벡터, 벡터와 행렬 또는 두 벡터의 Kronecker 곱을 반환

LinearRegression

계산된 선형 회귀 값으로 벡터/행렬을 계산합니다

통계

Loss

손실 함수 값을 계산하고 전달된 벡터/행렬에 씁니다.

머신 러닝

LstSq

선형 대수 방정식의 최소제곱해를 반환(비제곱 또는 축퇴 행렬의 경우).

솔루션

LU

행렬의 LU 분해 구현: 하부 삼각 행렬과 상부 삼각 행렬의 곱

변환

LUP

행 순열만 있는 LU 분해를 참조하는 부분 순열을 사용하여 LUP 분해를 구현: PA=LU

변환

MatMul

두 행렬의 행렬 곱

Max

행렬/벡터의 최대값 반환

통계

Mean

요소 값의 산술 평균 계산

통계

Median

행렬/벡터 요소의 중앙값 계산

통계

Min

행렬/벡터의 최소값 반환

통계

Norm

행렬 또는 벡터 놈 반환

기능

Ones

1로 채워진 새 행렬을 만들고 반환

초기화

Outer

두 행렬 또는 두 벡터의 외적 계산

Percentile

지정된 축을 따라 행렬/벡터 요소 또는 요소 값의 지정된 백분위수를 반환

통계

PInv

Moore-Penrose 방법으로 행렬의 유사 역행렬을 계산

솔루션

Power

정사각 행렬을 정수 거듭제곱으로 올림

Prod

주어진 축에 대해서도 실행할 수 있는 행렬/벡터 요소의 곱을 반환

통계

Ptp

행렬/벡터 또는 주어진 행렬 축의 값의 범위를 반환

통계

QR

행렬의 qr 인수분해를 계산

변환

Quantile

지정된 축을 따라 행렬/벡터 요소 또는 요소 값의 지정된 분위수를 반환

통계

Rank

가우스 방법을 사용하여 행렬 순위 반환

기능

RegressionMetric

지정된 데이터 배열에 구성된 회귀선의 편차 오류로 회귀 메트릭을 계산

통계

Reshape

데이터를 변경하지 않고 행렬의 모양 변경

조작

Resize

모양과 크기가 변경된 새 행렬 반환

조작

Row

행 벡터를 반환

조작

Rows

행렬의 행 수를 반환

기능

Set

지정된 인덱스로 벡터 요소의 값을 정합니다

조작

Size

벡터의 크기를 반환

기능

SLogDet

행렬의 행렬식의 부호와 로그를 계산

기능

Solve

선형 행렬 방정식 또는 선형 대수 방정식 시스템 풀기

솔루션

Sort

place별로 정렬

조작

Spectrum

행렬곱 AT*A의 고유값 집합으로 행렬의 스펙트럼을 계산

기능

Split

행렬을 여러 부분 행렬로 분할

조작

Std

지정된 축을 따라 행렬/벡터 요소 또는 요소 값의 표준 편차를 반환

통계

Sum

주어진 축(축)에 대해서 실행할 수 있는 행렬/벡터 요소의 합을 반환

통계

SVD

특이값 분해

변환

SwapCols

행렬의 열을 바꿈

조작

SwapRows

행렬에서 행을 서로 바꿈

조작

Trace

행렬의 대각선을 따라 합계를 반환

기능

Transpose

전치(축 교환) 및 수정된 행렬 반환

조작

Tri

지정된 대각선 이하에 1이 있고 다른 위치에 0이 있는 행렬을 구성

초기화

TriL

k번째 대각선 위의 요소가 0인 행렬의 복사본을 반환 Lower triangular matrix

조작

TriU

k 번째 대각선 아래의 요소가 0인 행렬의 복사본을 반환 Upper triangular matrix

조작

Var

행렬/벡터 요소 값의 분산 계산

통계

Vsplit

행렬을 세로로 여러 부분 행렬로 분할 axis=1로 Split과 동일

조작

Zeros

0으로 채워진 새 행렬을 만들고 반환

초기화