用c++实现查找相关系数
时间: 2023-08-24 19:51:32 浏览: 30
下面是使用 C++ 实现查找相关系数的代码:
```cpp
#include <iostream>
#include <vector>
#include <numeric>
#include <cmath>
using namespace std;
double findCorrelationCoefficient(vector<double>& A, vector<double>& B) {
if (A.size() != B.size()) {
cout << "两个向量的长度不一致!" << endl;
return 0.0;
}
long Length = A.size();
double sumA = accumulate(A.begin(), A.end(), 0.0);
double sumB = accumulate(B.begin(), B.end(), 0.0);
double aveA = sumA / double(Length);
double aveB = sumB / double(Length);
double R1 = 0.0, R2 = 0.0, R3 = 0.0;
for (long i = 0; i < Length; i++) {
R1 += (A[i] - aveA) * (B[i] - aveB);
R2 += pow(A[i] - aveA, 2);
R3 += pow(B[i] - aveB, 2);
}
return (R1 / sqrt(R2 * R3));
}
int main() {
// 输入数据
vector<double> A = {1, 2, 3, 4, 5};
vector<double> B = {2, 4, 6, 8, 10};
// 调用计算相关系数函数
double correlationCoefficient = findCorrelationCoefficient(A, B);
// 输出结果
cout << "相关系数为:" << correlationCoefficient << endl;
return 0;
}
```
在这个代码中,我们定义了一个函数 `findCorrelationCoefficient`,该函数接受两个向量 `A` 和 `B` 作为参数,并计算它们的相关系数。首先,我们检查两个向量的长度是否相等。然后,我们计算向量的总和、平均值以及相关系数的分子和分母。最后,我们返回计算得到的相关系数。
在主函数中,我们初始化了向量 `A` 和 `B` 的值,并调用 `findCorrelationCoefficient` 函数来计算相关系数。最后,我们输出了计算得到的相关系数结果。