삼각형으로 세는 경우, 즉 끝부터 세는 경우 PearsonCorrM2의 속도를 2배로 높일 수 있습니다. 모두 100 줄을 세고 0-99, 99 및 100 번째가 모두 계산 된 99 줄을 세십시오. ...50 번째 줄을 모두 50 번째 등으로 복사 할 수 있습니다. 그리고 = 1 때문에 그 자체로 계산하지 마십시오.
추신 일반적으로 귀하의 코드는 아름답고 간결합니다. 나는 모든 것을 루프로 할 것입니다))))
Forester #: 삼각형으로 세는 경우, 즉 끝부터 세는 경우 PearsonCorrM2의 속도를 2배로 높일 수 있습니다. 모두 100 번째 줄을 모두 세고 0-99, 99 및 100 번째 줄이 이미 계산 된 99 개를 모두 계산하면됩니다. ... 50 번째 줄을 모두 50 번째 줄로 계산하는 식으로 복사 할 수 있습니다.
빠른 푸리에 변환을 통해 상관 관계를 빠르게 계산할 수 있다고 어딘가에서 읽었습니다... 또한 속도를 높이는 옵션으로.
그렇다면 이 모든 상관관계 연구의 최종 목표는 무엇일까요?
다른 사람들이 기술적 한계로 인해 계산할 수 없는 것을 계산할 수 있을 것입니다.
또한 테스트 및 시각화 및 빠른 조치, 아마도
거래의 매개 변수를 선택하기 위한 최종 최적화도 정상입니다.
처음에는 매번 모든 줄을 세는 정면 변형을 시도했습니다. 제 스스로는 찾을 수 없었기 때문에 알글리브에 오류가 있다는 인상을 받았습니다.
결과는 종종 일치합니다.
하지만 어떤 상황에서는 그렇지 않은 경우도 있습니다.
항상 이런 식이라면 제 잘못이겠죠. 하지만 여기에는 뭔가 이상한 일이 벌어지고 있습니다.
Print(Matrix1);
Print("------------------");
Print(Matrix2);
Matrix2에는 처음 5개가 일치하고 그 다음에는 0이 있습니다.
행렬은 비슷해졌지만 여전히 IsEqual은 통과하지 못합니다. 어딘가에 다른 문제가 있는 것 같습니다...Res.Col(Corr.Row(0), i); 를 Res.Row(Corr.Row(0), i)로 변경했습니다;
Res.Col(Corr.Row(0), i); 를 Res.Row(Corr.Row(0), i)로 변경했습니다;
잘못된 것 같습니다.
Made
Print(Matrix1);
Print("------------------");
Print(Matrix2);
Matrix2에는 처음 5개가 일치하고 그 다음에는 0이 있습니다.
행렬은 비슷해졌지만 여전히 IsEqual은 통과하지 못합니다. 어딘가 다른 문제...Res.Col(Corr.Row(0), i); 를 Res.Row(Corr.Row(0), i)로 변경했습니다;
문제 발견
다음과 같아야 합니다.
for (int i = 0; i < (int)Matrix.Cols(); i++)
{
if (i)
Vector.SwapCols(0, i);
CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), Corr);
Res.Col(Corr.Row(0), i);
}
추신
일반적으로 귀하의 코드는 아름답고 간결합니다. 나는 모든 것을 루프로 할 것입니다))))
삼각형으로 세는 경우, 즉 끝부터 세는 경우 PearsonCorrM2의 속도를 2배로 높일 수 있습니다. 모두 100 번째 줄을 모두 세고 0-99, 99 및 100 번째 줄이 이미 계산 된 99 개를 모두 계산하면됩니다. ... 50 번째 줄을 모두 50 번째 줄로 계산하는 식으로 복사 할 수 있습니다.
빠른 푸리에 변환을 통해 상관관계를 빠르게 읽을 수 있다는 글을 어디선가 읽었는데... 속도를 높이는 옵션도 있습니다.
나는 그것을했다. 문자열 길이가 클 때 의미가 있습니다. 언젠가 보여드릴게요.
문제 발견
다음과 같이 표시되어야 합니다.