码迷,mamicode.com
首页 > 其他好文 > 详细

matlab 利用while循环计算平均值和方差

时间:2015-10-04 22:15:19      阅读:2015      评论:0      收藏:0      [点我收藏+]

标签:

一、该程序是用来测输入数据的平均值和方差的

公式:

 

技术分享

二、 项目流程:

1. State the problem
假定所有测量数为正数或者0,计算这一系列测量数的平均值和方差。
假定我们预先不知道有多少测量数据被录入,一个负数标志着测量数据输入结束

2. Define the inputs and outputs
程序要求输入的数是未知的正数或者0,程序输出的数是输入数据集的平均值和方差。
除此之外,我们将打印出输入的数据数,因为它对于我们检查输入数据是有用的

3.Define the algorithm
这个程序将被分为三个主要步骤:

Accumulate the input data
Calculate the mean(平均值)和standard deviation(方差)
Write out the mean, standard deviation , and number of points

第一个主要步骤是累计输入的数据,为了达到目的,我们将要求用户输入想要的数据,当每一个数据录入时,累计数量并求和,求平方和
伪代码:
初始化 n, sum_x, and sum_x2为0
请求用户输入
读取输入数x
while x>=0
n <- n+1
sum_x <- sum_x +x;
sum_x2 <- sum_x +x^2;
读取下一个x
end
注意:我们不得不读第一个数在while之前,以便于while循环第一次执行时有值

第二步,我们计算平均值和方差,利用平均值公式和方差公式写伪代码:

x_bar <- sum_x / n
std_dev <-sqrt( (n*sum_x2 - sum_x2^2) /(n*(n-1)) )

第三步,我们输出结果

输出平均值 x_bar
输出方差值 std_dev
输入输入数据的数量n

4.Turn the algorithm into MATLAB statements

%  脚本文件:states.m
% 
% 目标:
% 该程序首先累计输入未知的数(正数或者0),然后计算这个数据集的平均值和方差
% 
% 版本记录
%     日期           编者          描述
%    =====         =========     ================
% 2015-10-4 21:21     泡泡         源码
% 
% 定义变量:
% 
% m            --输入样本数量
% std_dev      --输入样本的方差
% sum_x        --输入样本的和
% sum_x2       --输入样本的平方和
% x            --输入样本值
% xbar         --输入样本的平均值
% 
% 
% 
%清除变量或指令
clc;

%变量初始化
n=0; sum_x=0;sum_x2=0;

%读取第一个输入值
x=input (请输入第一个数: );

%while循环
while x >=0
    %累积
    n      = n+1;
    sum_x  = sum_x +x;
    sum_x2 = sum_x2 +x^2;
    
    %读取下一个值
    x=input (请输入下一个数:  );
end

%计算方差和平均值

x_bar =sum_x /n;
std_dev =sqrt ( (n*sum_x2 - sum_x^2) /(n*(n-1)) );

%输出
fprintf(您输入的数据总数为: %f\n, n);
fprintf(平均值是:%f\n, x_bar);
fprintf(方差是: %f\n, std_dev);

 

5.Test the program

假定输入的数为 3 4 5 -1(结束标志)
那么:
输出平均值 4
输出方差值 1
输入输入数据的数量 3

matlab 利用while循环计算平均值和方差

标签:

原文地址:http://www.cnblogs.com/shuqingstudy/p/4855052.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!