C语言两组数组求相关系数
时间: 2023-10-29 19:00:52 浏览: 53
这是一个比较复杂的问题,需要详细的步骤来计算相关系数。首先,需要计算出两组数组的均值,然后计算出每组数据与均值的偏差值,再计算这些偏差值的乘积。将所有乘积相加,再除以数据数量减一,就得到了相关系数。
以下是 C 语言代码示例,用于计算两组数组的相关系数:
```c
#include <stdio.h>
#include <math.h>
double correlation(int x[], int y[], int n) {
double sum_x = 0, sum_y = 0, sum_xy = 0;
double sum_xx = 0, sum_yy = 0;
for (int i = 0; i < n; i++) {
sum_x += x[i];
sum_y += y[i];
sum_xx += x[i] * x[i];
sum_yy += y[i] * y[i];
sum_xy += x[i] * y[i];
}
double numerator = n * sum_xy - sum_x * sum_y;
double denominator = sqrt((n * sum_xx - sum_x * sum_x) * (n * sum_yy - sum_y * sum_y));
double result = numerator / denominator;
return result;
}
int main() {
int x[] = {1, 2, 3, 4, 5};
int y[] = {6, 7, 8, 9, 10};
int n = sizeof(x) / sizeof(x[0]);
double corr = correlation(x, y, n);
printf("Correlation: %f\n", corr);
return 0;
}
```
在这个示例中,我们假设有两组数组 x 和 y,每组数组有 5 个元素,分别为 {1, 2, 3, 4, 5} 和 {6, 7, 8, 9, 10}。我们使用 `correlation` 函数来计算这两组数组的相关系数,并打印出结果。