Matlab - 从boxplot中提取值

SMU*_*hah 4 matlab

我想从内置的boxplot函数中提取值.在A1中有三个额外的大值(1000000),而正确的最大值是273.

a = boxplot(A1)

a =

  173.0043
  174.0028
  175.0033
  176.0027
  177.0032
  178.0027
  179.0031
Run Code Online (Sandbox Code Playgroud)

我试过这个,但我不知道这些价值是多少,这些不是异常值本身也不是异常值的指数.

findobj(gcf,'tag','Outliers'); 仅返回179.0031

如何从boxplot中提取异常值或其索引?

yuk*_*yuk 9

BOXPLOT返回不同图形对象的句柄数组.

在默认参数(plotstyle设置为outline等)时,输出是7 x M个句柄数组,其中M是boxplot组的数量,每个都有以下7个句柄:

  1. 上晶须
  2. 较低的晶须
  3. 上邻值
  4. 较低的相邻值
  5. 框
  6. 中位数
  7. 离群值

在不同的参数下,boxplot可能会返回不同数量的句柄,因此最好通过标记找到所需的内容.

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

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

xdata = get(h,'XData');
ydata = get(h,'YData');
Run Code Online (Sandbox Code Playgroud)