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

matlab 利用while循环计算平均值和方差(第二版)

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

标签:

第一版中因为公式中含有:分母项:n(n-1),而程序并没有对输入数进行判定,如果仅仅输入一个或者一个都不输入,将会出现除0的情况

基于此,进行第二版改进。

代码:

%  脚本文件:states.m
% 
% 目标:
% 该程序首先累计输入未知的数(正数或者0),然后计算这个数据集的平均值和方差
% 
% 版本记录
%     日期           编者          描述
%    =====         =========     ================
% 2015-10-4 21:21     泡泡         源码
% 2015-10-4 21:56     泡泡        纠正除0的情况(当仅输入0或1个数时)
% 定义变量:
% 
% 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
% % 检查是否有足够数目的输入数据
if n < 2 %数据量不足
    
    disp(‘要求输入数据最少为2个‘);
else
    
    %计算方差和平均值

    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);
end
% % 

 

matlab 利用while循环计算平均值和方差(第二版)

标签:

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

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