2012-03-15 195 views
4

我想从内置boxplot函数中提取值。在A1有三个特大型值(1000000),而正确的最大值为273Matlab - 从boxplot中提取值

a = boxplot(A1) 

a = 

    173.0043 
    174.0028 
    175.0033 
    176.0027 
    177.0032 
    178.0027 
    179.0031 

我试过,但我不知道你到底是这些价值观,这些都不是离群自理,也不指数异常值。只有179.0031

如何从箱线图中提取异常或它们的索引

findobj(gcf,'tag','Outliers');回报?

回答

9

BOXPLOT返回不同图形对象的手柄数组。

在默认参数(plotstyle设置为outline,等)的输出是手柄,7×M的阵列,其中M为箱线群的数目,每一个都具有以下7个把手:

  1. 上晶须
  2. 下晶须
  3. 上邻近值
  4. 下相邻值
  5. 个中位数
  6. 离群

在箱线图可以返回不同数量的把手,所以最好找到你所需要的标签有什么不同的参数。

要提取数据,您必须访问特定对象的Data属性,如果此属性存在。

h = findobj(gcf,'tag','Outliers'); 

xdata = get(h,'XData'); 
ydata = get(h,'YData');