如何用matlab计算皮尔逊相关系数
发布网友
发布时间:2022-05-12 07:40
我来回答
共2个回答
热心网友
时间:2024-02-19 20:56
function coeff = myPearson(X , Y)
% 本函数实现了皮尔逊相关系数的计算操作
%
% 输入:
% X:输入的数值序列
% Y:输入的数值序列
%
% 输出:
% coeff:两个输入数值序列X,Y的相关系数
%
if length(X) ~= length(Y)
error('两个数值数列的维数不相等');
return;
end
fenzi = sum(X .* Y) - (sum(X) * sum(Y)) / length(X);
fenmu = sqrt((sum(X .^2) - sum(X)^2 / length(X)) * (sum(Y .^2) - sum(Y)^2 / length(X)));
coeff = fenzi / fenmu;
end %函数myPearson结束
放进matlab
然后
??? function coeff = myPearson(X , Y)
|
Error: Function definitions are not permitted at the prompt or in scripts.
热心网友
时间:2024-02-19 20:56
1、相关系数就用命令corrcoef
min(min(corrcoef(x1, x2))) 就是x1,x2之间的相关系数。
比如
t = (1:0.1:100)';
w = 2*pi;
x1=sin(w*t)+randn(size(t));
x2=cos(w*t)+randn(size(t));
x3=sin(w*t)+randn(size(t));
x1_x2 = min(min(corrcoef(x1, x2)))
x1_x3 = min(min(corrcoef(x1, x3)))
2、用corrcoef函数
设a1,b1,c1,d1 ,a2,b2,c2,d2 分别为f(x)和g(x)的系数
x=[a1,b1,c1,d1];
y=[a2,b2,c2,d2];
z=corrcoef(x,y)