zoukankan      html  css  js  c++  java
  • matlab 利用while循环计算平均值和方差(第二版)

    第一版中因为公式中含有:分母项: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);
        fprintf('平均值是:%f
    ', x_bar);
        fprintf('方差是: %f
    ', std_dev);
    end
    % % 
  • 相关阅读:
    linux下tomcat 重启和查看日志
    js 下载文件 不直接打开的方法
    linux 安装jdk1.7
    linux下安装nginx
    mysql5.6安装
    微信小程序js倒计时功能
    Ajax 页面跳转例子
    购买阿里云免费https证书,配置tomcat实现https加密访问
    Ajax 实现数组传递(Java)
    mysql 游标实例一
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/4855074.html
Copyright © 2011-2022 走看看