计算一组离散数据的标准偏差和中位数。函数的构建

% 计算一组离散数据的标准偏差和中位数。
% 我们假设数据是以频数或数据点数量给出。作为例子,我们再次以办公室雇员为例
% 子,我们取得每个年龄的雇员数量。假设他们是:
% 2 个雇员的年龄是 17
% 1 个雇员的年龄是 18
% 3 个雇员的年龄是 21
% 1 个雇员的年龄是 24
% 1 个雇员的年龄是 26
% 4 个雇员的年龄是 28
% 2 个雇员的年龄是 31
% 1 个雇员的年龄是 33
% 2 个雇员的年龄是 34
% 3 个雇员的年龄是 37
% 1 个雇员的年龄是 39
% 2 个雇员的年龄是 40
% 3 个雇员的年龄是 43
% 我们要做的第一件事是创建一个绝对频数数据数组,这就是我们在前一节中使用的数组
% N(j)。这一次我们会有每个年龄的入口,所以我们把所给年龄没有雇员的地方设为 0。我们
% 把绝对频数称为 f_abs:
f_abs = [2, 1, 0, 0, 3, 0, 0, 1, 0, 1, 0, 4, 0, 0, 2, 0, 1, 2, 0, 0, 3, 0, 1, 2, 0, 0, 3];
% 我们把数据“装”在一起,所以我们定义一个 bin width(We are “binning” the data, so let’s
% define a bin width)。由于我们是以一岁一岁度量的,我们把 bin width 设为 1:
binwidth = 1;
% 我们创建一个数组表示 17 到 43 之间的年龄,binwidth 是 1。
bins = [17:binwidth:43]; %bins=[17,43];
% 现在我们收集未加工的数据,使用 for 循环遍历所有数据,重新构建数组如下:
raw = [];
for i = 1:length(f_abs)
if f_abs(i) > 0
new = bins(i)*ones(1,f_abs(i)); %ones(a,b)创建一行两列单位向量
else
new = [];
end
raw =[raw,new]; %数组的创建/拼接
end
% 这个循环所做的就是创建一个数组,按频率重复每个元素。运行得:

raw =
Columns 1 through 21
17 17 18 21 21 21 24 26 28 28 28 28 31 31 33 34 34 37 37 37 39
Columns 22 through 26
40 40 43 43 43

ave = mean(raw) %平均数
ave =
30.7308

md = median(raw) %中位数
82
md =
31

sigma = std(raw) %标准偏差
sigma =
8.3836

注:标准差也被称为标准偏差,标准差(Standard Deviation)描述各数据偏离平均数的距离(离均差)的平均数,它是离差平方和平均后的方根,用σ表示。标准差是方差的算术平方根。这里写图片描述
数组对应位置的重构,这个基础问题我好久都不知道如何下手 今天终于看到了,感谢这本教材,真的特别特别好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值