C语言实现偏度计算

#偏度
本文是采用matlab中计算偏度的公式,然后用C语言实现。

#include<stdio.h>
#include<math.h>

double mean(double a[128], double len)
{
    
    
	double sum = 0;
	double mean = 0;
	//求和
	for (int i = 0; i < len; i++)
	{
    
    
		sum += a[i];
	}
	//计算均值
	mean = sum / len;
	return mean;
}

double skewness(double a[128], double len)
{
    
    
	double ske_mean = 0;
	double s1 = 0;
	double s0 = 0;
	double x_xmean_2 = 0;
	double x_xmean_3 = 0;
	//均值
	ske_mean = mean(a, len);
	for (int i = 0; i < len; i++)
	{
    
    
		x_xmean_2 += (a[i] - ske_mean)*(a[i] - ske_mean);
		x_xmean_3 += (a[i] - ske_mean)*(a[i] - ske_mean)*(a[i] - ske_mean);

	}
	s1 = ((1 / len)*x_xmean_3) / pow(sqrt((1 / len)*x_xmean_2),3);

	s0 = sqrt(len*(len - 1))*s1 / (len - 2);
	//根据计算偏度的不同选择返回s1或者s0
	return s0;
}


猜你喜欢

转载自blog.csdn.net/weixin_49216787/article/details/125429067