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),然后计算这个数据集的平均值和方差
%
% 版本记录
% 日期 编者 描述
% ===== ========= ================
% -- : 泡泡 源码
%
% 定义变量:
%
% m --输入样本数量
% std_dev --输入样本的方差
% sum_x --输入样本的和
% sum_x2 --输入样本的平方和
% x --输入样本值
% xbar --输入样本的平均值
%
%
%
%清除变量或指令
clc; %变量初始化
n=; sum_x=;sum_x2=; %读取第一个输入值
x=input ('请输入第一个数: '); %while循环
while x >=
%累积
n = n+;
sum_x = sum_x +x;
sum_x2 = sum_x2 +x^; %读取下一个值
x=input ('请输入下一个数: ');
end %计算方差和平均值 x_bar =sum_x /n;
std_dev =sqrt ( (n*sum_x2 - sum_x^) /(n*(n-)) ); %输出
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循环计算平均值和方差的更多相关文章
- matlab 利用while循环计算平均值和方差(第二版)
第一版中因为公式中含有:分母项:n(n-1),而程序并没有对输入数进行判定,如果仅仅输入一个或者一个都不输入,将会出现除0的情况 基于此,进行第二版改进. 代码: % 脚本文件:states.m % ...
- Java利用while循环计算1+1/2!+1/3!……+1/20!
编写程序,用while语句计算1+1/2!+1/3!……+1/20!,并在控制泰山输出计算结果.要求1+1/2!+1/3!……+1/20!,其实就是求1+1*1/2+1*1/2*1/3+……+1*1/ ...
- matlab 利用persistent关键字 存储持久变量
数学知识:标准差体现随机变量取值与其期望值的偏差.标准差的值较大,则表明该随机变量的取值与其期望值的偏差较大反之,则表明此偏差较小.函数功能:函数必须能够接受一次输入值并记录对应的已输入数N.sum( ...
- 解决Matlab当中for循环运行慢的问题
做量化操作的时候经常需要使用到matlab编写策略或者计算多因子,for循环非常慢,自己找了一些matlab中for循环的优化方法,for的部分每处理一个大矩阵都要花费大量的时间,这是不可避免需要遇到 ...
- for循环计算阶乘的和,for循环计算阶乘倒数的和
计算阶乘的和 //阶乘的和,5!+4!+3!+2! int a = 5; for(int b = 4; b > 0; b--) { a = a * b; } //先定义好最大数的阶乘是多少 in ...
- Matlab Robotics Toolbox 仿真计算:Kinematics, Dynamics, Trajectory Generation
1. 理论知识 理论知识请参考: 机器人学导论++(原书第3版)_(美)HLHN+J.CRAIG著++贠超等译 机器人学课程讲义(丁烨) 机器人学课程讲义(赵言正) 2. Matlab Robotic ...
- 利用CORDIC算法计算三角函数
这里主要先介绍如何利用CORDIC算法计算固定角度\(\phi\)的\(cos(\phi)\).\(sin(\phi)\)值.参考了这两篇文章[1].[2]. 一般利用MATLAB计算三角函数时,用\ ...
- iOS 利用for循环创建九宫格
// 利用for循环创建九宫格 - (void)createScratchableLatex{ // 总列数 ; // 每一格的尺寸 CGFloat cellW = (self.frame.size. ...
- 利用switch语句计算特定的年份的月份共有几天。
//利用switch语句计算特定的年份的月份共有几天. let year =2015 let month =2 //先判断闰年中二月份的情况 ifmonth ==2 { if (year %400 = ...
随机推荐
- iOS 为label添加删除线
UILabel *testLabel = [[ UILabel alloc] initWithFrame:CGRectMake(, , , )]; testLabel.numberOfLines = ...
- Vue.js起步
Vue.js是一套构建用户界面的 渐进式框架,Vue 采用自底向上增量开发的设计,Vue 的核心库只关注视图层.Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用. V ...
- 转载:ECMAScript 6简介
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发 ...
- linux命令学习-3-sysctl
sysctl 内核变量配置 Usage: sysctl [options] [variable[=value] ...] NAME sysctl - configure kernel parame ...
- X-001 FriendlyARM Tiny4412 uboot移植前奏
版权声明:本文为博主原创文章,转载请注明出处 开发环境:win7 64位 + VMware12 + Ubuntu14.04 64位 工具链:linaro提供的gcc-linaro-6.1.1-2016 ...
- org.springframework.data.mapping.PropertyReferenceException: No property created found for type
错误原因:org.springframework.data.domain.SortSort sort=new Sort(Sort.Direction.DESC,"created_time&q ...
- 安卓组件service
[转]http://blog.csdn.net/ithomer/article/details/7364024 一. Service简介 Service是android 系统中的四大组件之一(Acti ...
- ubuntu14.04安装配置jdk1.8.0_25
Reference: http://jingyan.baidu.com/article/eb9f7b6d8f82a6869364e8a7.html 今天尝试在ubuntu14.04 LTS上安装jdk ...
- Linq左关联 右关联 内关联
1.左连接: var LeftJoin = from emp in ListOfEmployees join dept in ListOfDepartment on emp.DeptID equals ...
- Python的lambda匿名函数
lambda函数也叫匿名函数,即,函数没有具体的名称.先来看一个最简单例子: def f(x):return x**2print f(4) Python中使用lambda的话,写成这样 g = lam ...