数学知识:

标准差体现随机变量取值与其期望值的偏差。标准差的值较大,则表明该随机变量的取值与其期望值的偏差较大

反之,则表明此偏差较小。

函数功能:

函数必须能够接受一次输入值并记录对应的已输入数N、sum(xi)、sum(xi^2),用于计算当前的平均值和标准差。

已输入数N、sum(xi)、sum(xi^2)必须存储在持久内存中,这样在每一次调用后,不会消失,最后函数须具备需要时把这些值清零的功能。

1. State the problem

编写一个程序,计算当前输入数据的平均数和标准差。函数必须具备需要时计算功能和清零功能

2. Define the inputs and outputs

输入变量:当输入字符型“reset”用于已输入数N、sum(xi)、sum(xi^2)的清零

3.Design the algorithm(伪代码)

这个函数分为4步:

1)check for a legal number of arguments

2)check for a ‘reset‘,and resets sums if preset,otherwise,add current value to running sums

3)calculate and return runing average and std dev if enough data is available

return zeros if not enough data

4)这些步骤的伪代码:

检查输入的每个数的合法性

if x == ‘reset‘

n

sum_x

sum_x2

else

n

sum_x

sum_x2

%计算平均值ave和方差std

if n == 0

ave

std

else if n==1

ave

std

else

ave

std

end

4.Turn the algorithm into MATLAB statements

自定义函数:runstats.m

function [ave, std] =runstats(x)%RUNSTATS 随时计算一组数的平均值和方差% 输入数x必须一次一个,当输入字符串‘reset‘时,持久变量清零%定义输入输出变量% ave --平均值% msg --错误信息% n --一组数的个数% std --方差% sum_x --一组数的的和% sum_x2 --一组数的平方和% x --输入值%版本记录:%日期 负责人 版本描述% ==== ========== =====================

% 2015-10-9 17:43:33王茂春 源代码% 持久变量声明(重要)

persistent n % 输入数的个数

persistent sum_x % 输入数的和

persistent sum_x2 % 输入数的平方和% 检查输入数的合法性

msg = nargchk(1,1,nargin); %最少1个参数,最多一个参数,检查输入变量

error(msg);% 如果输入时‘reset‘,重置if x == ‘reset‘n= 0;

sum_x= 0;

sum_x2= 0;elsen= n + 1;

sum_x= sum_x +x;

sum_x2= sum_x2 + x^2;

end%计算平均值和方差if n == 0 %0输入

ave= 0;

std= 0;

elseif n== 1 %1输入

ave=sum_x;

std= 0;elseave= sum_x /n;

std= sqrt((n*sum_x2 - sum_x^2) / (n*(n - 1)));

end

调用函数test_runstats.m:

%脚本文件: test_runstats.m%

%程序目的:%计算输入一系列数的平均值和方差,(是随时保存值的)%

%版本记录:%日期 负责人 版本描述% ==== ========== =====================

% 2015-10-9 17:43:33王茂春 源代码%

%定义变量:% array --输入数组% ave --平均值% ii --循环索引% nvals --输入数的数量% std --方差%首先清零初始化

[ave std]= runstats(‘reset‘);%确定输入数的数量

nvals= input(‘输入这一组总数:‘);%获取输入值for ii = 1:nvals% 提示输入(这种方法:分成两个语句的学习下。。。)

string = [‘输入数值 ‘ int2str(ii) ‘: ‘];

x= input(string);%调用函数求解(输出变量是多个)

[ave std]=runstats(x);%显示运算结果

fprintf(‘平均值 = %8.4f; 标准差 = %8.4f\n‘,ave, std);

end

原文:http://www.cnblogs.com/shuqingstudy/p/4864610.html

matlab的persistent,matlab 利用persistent关键字 存储持久变量相关推荐

  1. matlab rloess,R语言利用loess如何去除某个变量对数据的影响详解

    R语言介绍 R语言是用于统计分析,图形表示和报告的编程语言和软件环境. R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发. R语言的核 ...

  2. matlab腔内光子寿命,mcFORnp matlab环境下,利用蒙特卡洛模拟光子包在生物组织内的光路传输 271万源代码下载- www.pudn.com...

    文件名称: mcFORnp下载  收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 215 KB 上传时间: 2014-12-29 下载次数: 8 提 供 者: 徐某 ...

  3. matlab ploty,matlab绘制函数 如何利用matlab的ploty

    最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...

  4. 利用Matlab进行灰色预测,利用matlab进行灰色预测.pdf

    利用matlab进行灰色预测,灰色预测matlab程序,灰色预测模型matlab,matlab灰色预测,matlab灰色预测代码,matlab灰色预测工具箱,灰色预测的matlab程序,matlab灰 ...

  5. matlab文件批量命名,利用MATLAB批量对文件重命名

    利用MATLAB批量对文件重命名 tags: MATLAB 科研软件 序 窃·格瓦拉 没paper,实验肯定要做啊,不做就毕不了业 . 编程这方面,编程是不可能编程的,这辈子不可能编程的 . pape ...

  6. 如何用matlab做表格,matlab用excel数据做表格-如何向matlab中导入excel表格 利用表格数据做出图......

    matlab如何从excel表格中读取数据? 工具:matlab 2018b 1.打开matlab击主页下入数据,可以导入excel数据此将自己命名huitushuju文件导入: 2.点击打开按钮,即 ...

  7. matlab三维圆柱体,matlab画三维圆柱体

    数学建模与数学实验 MATLAB作图 二维图形 三维图形 图形处理实例 特殊二.三维图形 作业 1.曲线图 MATLAB作图是通过描点.连线来实现的,故在 画一个曲线图形之前...... 二维图形 三 ...

  8. matlab充分利用性能,Matlab高性能编程——代码优化和并行计算

    Jeremy Lin  @HQU Update: 2014/4/29 Matlab代码优化 Matlab是一种高级计算机语言,同时也是一个用于算法开发,数据可视化,数据分析和数值计算的交互式工作环境. ...

  9. matlab引擎函数,Matlab引擎库函数

    Matlab引擎库包含了一系列从外部应用程序调用和控制Matlab引擎的函数.下表列举了C语言的引擎库函数,这些函数后使用了eng前缀名 表 1 C语言引擎函数库 引擎函数 功能描述 engOpen ...

最新文章

  1. pip配置永久国内源
  2. 又重新让aspspider.net支持中文PDF输出了
  3. 隐私与机器学习,二者可以兼得吗?
  4. 服务器上把计算机放桌面,远程服务器这么显示在电脑桌面
  5. 计算机的软件及功能是什么意思,M1版MacBook能兼容啥软件?超详细的兼容测试
  6. jest (让人愉悦的测试框架)
  7. 利用 ILSpy 查看 C# 代码编译及运行真相
  8. python提取格式化日志
  9. 一文弄懂Spring Cloud的5大核心组件详解:Eureka+Hystrix+Zuul+Ribbon
  10. java订单超时取消设计_订单超时30分钟自动取消
  11. NTFS文件系统详解 之 文件定位
  12. 做“合规”的数据处理者 | 一文图解《网络数据安全管理条例》
  13. 科目二考试技巧全总结
  14. 仰望与不惑:中国工业机器人四十年
  15. Linux下各种压缩文件的解压方法
  16. 基于《高级计算机图形学原理与实践》(西安科技大学)的学习笔记(一、二)
  17. 【集训DAY1】Dwarves line up【线段树】
  18. 怎么把pdf转换成excel文件?
  19. ExternalException (0x80004005): 无法执行程序
  20. 最新New Bing使用详细教程(微软Coplilot)

热门文章

  1. Redis高并发问题的解决
  2. 全球顶尖大学的UX课程资,免费拿走
  3. [原][连载]那时花开(二)
  4. STC12C5A60S2使用模拟IIC通信与AT24C02芯片编程
  5. 按关键词搜索工厂数据1688API
  6. 海康威视Sdk的demo成功运行
  7. Linux中elasticsearch:root给普通用户授权总是出现输入密码Sory try again…
  8. Multipath以及device mapper
  9. 盘点:动物界的10种“混血儿”,罕见杂交山绵羊(图)
  10. Learning FRAME Models Using CNN Filters for Knowledge Visualization