如何用Matlab循环的取平均值?

如何用Matlab循环的取平均值?,第1张

用Matlab循环的取平均值可以先用循环求和,再除以数量。

x=rand(1,10)%调试用的向量

s=0%s为向量的和

len=length(x)%len为向量长度

for i=1:len

s=s+x(i)%循环求和

end

xmean=s/len    %向量的和除以向量的长度就得到了平均值。

#include<stdio.h>

main()

{

int a,i,sum=0

printf("input 10 number:")

for(i=0i<10i++)

{

scanf("%d",&a)

sum+=a

}

printf("%d",sum/10)

}

实现思路很简单:

将十个数相加后,再除以10即可.

1、设置一个循环队列,先进行初始化。

2、分两种情况往进送数:a,队不满时,边往进送数,边送数边累加计算,跳出后计算平均值,代码如下:

while(!(Q->front==(Q->rear+1)%Q_size))//不满的情况下,进数

{

Q->rear=(Q->rear+1)%Q_size

Q->data[Q->rear]=rand()%1000

sum+=Q->data[Q->rear]

cout<<Q->data[Q->rear]<<endl

}

ave=sum/(Q_size-1)

cout<<"The Sum is"<<sum<<endl

cout<<"The Ave is"<<ave<<endl

3、满的情况下(Q->front==(Q->rear+1)%Q_size),进行如下 *** 作:

Q->front=(Q->front+1)%Q_size

x=Q->data[Q->front]//首元素出列

Q->rear=(Q->rear+1)%Q_size

Q->data[Q->rear]=rand()%1000//进新元素

4、分3种情况输出当前队列中的数据并计算平均值,因为每进一个数,由于固定队列长度的限制,当前队列的值都随之发生改变,每变一次输出一次,可以同时检验程序的正确性。

if(Q->front==Q_size-1){

for(i=0i<=Q->reari++){

cout<<Q->data[i]<<endl

sum+=Q->data[i]

}

ave=sum/(Q_size-1)

cout<<"Sum="<<sum<<endl

cout<<"Ave="<<ave<<endl

}

if(!Q->front){

for(i=(Q->front+1)%Q_sizei<=(Q_size-1)i++){

cout<<Q->data[i]<<endl

sum+=Q->data[i]

}

ave=sum/(Q_size-1)

cout<<"Sum="<<sum<<endl

cout<<"Ave="<<ave<<endl

}

else if(!(Q->front==Q_size-1)&&!(!Q->front)){

for(i=(Q->front+1)%Q_sizei<=(Q_size-1)i++){

cout<<Q->data[i]<<endl

sum+=Q->data[i]

}

for(i=0i<=Q->reari++){

cout<<Q->data[i]<<endl

sum+=Q->data[i]

}

ave=sum/(Q_size-1)

cout<<"Sum="<<sum<<endl

cout<<"Ave="<<ave<<endl

}

5、其他地方自己补充一下,该程序主要的缺点就是没有结束条件,会无限循环,但这满足不定时采样,和边采样边输出平均值的要求。


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

原文地址: http://outofmemory.cn/yw/11331247.html

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

发表评论

登录后才能评论

评论列表(0条)

保存