/// 2个数据集的相关度计算类
public static classCorrelation
{/// 计算皮尔逊积差相关系数
/// 数据样本A.
/// 数据样本B.
/// 返回皮尔逊积差相关系数.
public static double Pearson(IEnumerable dataA, IEnumerabledataB)
{int n = 0;double r = 0.0;double meanA = 0;double meanB = 0;double varA = 0;double varB = 0;
using (IEnumerator ieA =dataA.GetEnumerator())using (IEnumerator ieB =dataB.GetEnumerator())
{while(ieA.MoveNext())
{if (!ieB.MoveNext())
{throw new ArgumentOutOfRangeException("dataB", Resources.ArgumentArraysSameLength);
}double currentA =ieA.Current;double currentB =ieB.Current;double deltaA = currentA -meanA;double scaleDeltaA = deltaA/++n;double deltaB = currentB -meanB;double scaleDeltaB = deltaB/n;
meanA+=scaleDeltaA;
meanB+=scaleDeltaB;
varA+= scaleDeltaA*del