【问题标题】:How to calculate the number of data points within a dataset that are x standard deviations from the mean in Matlab如何计算数据集中与 Matlab 中的平均值相差 x 标准差的数据点数
【发布时间】:2016-02-27 02:26:42
【问题描述】:

您好,我是 Matlab 编程的新手,我正在尝试在一组数据中找到与平均值相差 x 个标准差的数据点数。数据集是使用 randn 的 5,000 个随机数。我想用一个循环来做这个,我认为应该采取的步骤如下:

  1. 循环遍历 5,000 个随机数据点
  2. 计算距平均值 +- 1 标准差的点
  3. 打印点数

我不确定从哪里开始,如果有人能指出我正确的方向,我将不胜感激。谢谢。

【问题讨论】:

  • 这里的代码告诉你数组a中有多少元素在lim1lim2之间:sum(a>=lim1 & a<=lim2)。现在将其调整为具有均值和标准差的数组。
  • 有一个计算标准推导的函数,不需要循环或类似的。查看std的文档
  • Take a look at this question, it is very similar。不是计数,而是删除,但是CST-Link已经给你解释了如何计数。

标签: matlab


【解决方案1】:
N = 5000;         % Number of data points
x = randn(N,1);   % Random vector
mu = mean(x);     % Mean of vector
sig = std(x);     % Stan. dev. of vector

% This is a logical array that signifies where the
% condition is true.
inds = (x >= (mu - sig)) & (x <= (mu + sig));

你能从这里拿走吗?

【讨论】:

  • 感谢您帮助我将其可视化