matlab 皮尔逊相关系数计算代码
时间: 2023-09-02 10:12:18 浏览: 145
下面是 Matlab 中计算两个向量的皮尔逊相关系数的代码:
```matlab
function r = pearson_corr(x, y)
% 计算两个向量 x 和 y 的皮尔逊相关系数
n = length(x); % 向量长度
mean_x = mean(x); % 求 x 的平均值
mean_y = mean(y); % 求 y 的平均值
std_x = std(x); % 求 x 的标准差
std_y = std(y); % 求 y 的标准差
% 计算皮尔逊相关系数
r = sum((x-mean_x).*(y-mean_y)) / (std_x*std_y*(n-1));
end
```
使用方法:将两个向量作为参数传入函数 `pearson_corr(x, y)` 即可计算它们的皮尔逊相关系数。例如:
```matlab
x = [1, 2, 3, 4, 5];
y = [2, 3, 4, 5, 6];
r = pearson_corr(x, y);
disp(r);
```
输出结果为:`1.0000`,即两个向量完全正相关。
相关问题
matlab皮尔逊相关系数代码
在MATLAB中,计算两个变量之间的皮尔逊相关系数(Pearson's correlation coefficient)可以使用`corrcoef`函数。这是一个简单的例子:
```matlab
% 假设我们有两组数据 x 和 y
x = [1 2 3 4 5]; % 这是一组示例数据
y = [2 4 6 8 10]; % 另一组数据
% 使用 corrcoef 函数计算皮尔逊相关系数
[r, ~] = corrcoef(x', y'); % ' 表示转置,~ 表示忽略结果矩阵中的其他信息
% 相关系数存储在 r(1,2) 或 r(2,1),因为 corrcoef 返回对角线是对称的
correlation_coefficient = r(1, 2); % 取出相关系数值
disp(['皮尔逊相关系数: ', num2str(correlation_coefficient)]);
```
在这个代码中,`corrcoef`返回的是一个二维数组,对角线元素是每个变量自身的相关系数,非对角线元素则是两个变量之间的相关系数。我们只需要其中的一个值。
matlab计算皮尔逊相关系数的代码
要计算MATLAB中的皮尔逊相关系数,可以使用corr函数。下面是一个示例代码:
a = [0.6; 0.9; 0.78; 0.28; 0.44; 0.40; 0.69; 0.94; 0.45];
b = [31.46; 26.75; 32.08; 26.38; 29.75; 27.57; 28.56; 27.67; 28.18];
coeff = corr(a, b, 'type', 'Pearson'); %
这段代码中,a和b分别是两个向量,代表了数据的两个维度。corr函数用于计算这两个向量的相关系数。'type'参数指定了相关系数的类型,这里使用'Pearson'表示计算皮尔逊相关系数。计算结果存储在变量coeff中。
参考文献:
Pearson correlation coefficient in MATLAB. https://www.mathworks.com/matlabcentral/answers/249245-pearson-correlation-coefficient
阅读全文