标签:
第一版中因为公式中含有:分母项: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
% %
标签:
原文地址:http://www.cnblogs.com/shuqingstudy/p/4855074.html