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

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

    公式:

    二、 项目流程:

    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);
    fprintf('平均值是:%f
    ', x_bar);
    fprintf('方差是: %f
    ', std_dev);

    5.Test the program

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

  • 相关阅读:
    从零实现一个功能完善的迷你区块链
    Merkle Tree理解起来并不难
    微信、支付宝个人收款的一种实现思路
    PostgreSQL的登录、创建用户、数据库并赋权
    java list 按照多字段排序
    2019年最新全国省市区街道共46462条数据(统计局MySQL数据库)
    一份非常值得一看的Java面试题
    spring scope prototype与singleton
    http请求与响应,TCP三次握手&四次分手
    HTTP协议三次握手过程
  • 原文地址:https://www.cnblogs.com/shuqingstudy/p/4855052.html
Copyright © 2011-2022 走看看