求助,C语言,求方差的编程问题!

求助,C语言,求方差的编程问题!,第1张

#include <塌祥stdio.h>

int main ( void )

{

float *x, *p, E, D

int i, n

printf ( "n=" )

scanf ( "团渗搏%d", &n )

p = x = (float*) malloc ( sizeof(float) * n )

E = D = 0.0

for ( i = ni >0i-- )

{

scanf ( "%f", p )

E += *p++

}

E /= n

p = x

for ( i = ni >0i-- )

{

float tmp

tmp = *p++ - E

D += tmp * tmp

}

D /= n

free ( x )

printf ( "喊袜%f", D )

return 0

}

#include <iostream>

using namespace std

int main()

{

double sum=0,s=0,e

int n

cout <<"输入数组元素个数" <<endl

cin>>n

int *a=new int[n]

for(int i=0i<ni++){

cout<<"输入第"<<i<<"个数纳饥"<<endl

cin>>a[i]

}

for(i=0i<ni++) //求和

sum+=a[i]

e=sum/n //求平均值

cout<<"["

for(i=0i<ni++){ //求方差

cout<<"("<<a[i]<<历茄配"-"<<e<<")*("<<a[i]<<"-"<<e<<")"

if(i!=n-1)

cout<<"+"肢指

s+=(a[i]-e)*(a[i]-e)

}

cout<<"]/"<<n

s=s/n

cout <<"="<<s<<"(方差)"<<endl

return 0

}

matlab的方差求算在matlab程序上输入下列例子:

Matlab 函数:var

>>X=[1,2,3,4]

>>var(X)=1.6667

>>sum((X(1,:)-mean(X)).^2)/length(X)=1.2500

>>sum((X(1,:)-mean(X)).^2)/(length(X)-1)=1.6667

var没有求矩阵的方差功能,可使用std先求均方差,再平方得到方差。

std,均方差,std(X,0,1)求列向量方差,std(X,0,2)求行向量方差。

>>X=[1 2

3 4]

>>std(X,0,1)=1.4142  1.4142

>>std(X,0,2)=0.7071

0.7071

若要启碰求整个矩阵所有元素的均方差,则要使用std2函数:

>>std2(X)=1.2910

要注意的是var函数所采用公式中,分母不是 ,而是 。这是因为var函数实际上求的并不是方差,而是误差理论中“有限次测量数据的标准偏差的估计值”。

扩展资料:

matlab求方凳喊差时的注意事项:

1、装出错时,可换注册码继续安装,到同一目录;

2、谨记安装路径不要有中文名称;

3、成功安装完毕之后,如果遇到matlab启动后,窗口枣旁野在打开一到两秒后就自动关闭了, 可按以下方法试试:【假设你安装的目录为c:\MATLAB\】(不过不建议安装到C盘,那样会影响系统速度)

参考资料:百度百科 matlab


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12381224.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存