2012-03-15 160 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');