How to count points outside the bound in scatter plot?

2 visualizaciones (últimos 30 días)
Mahesh
Mahesh el 15 de Sept. de 2014
Comentada: Mahesh el 15 de Sept. de 2014
Dear all, I would like to count the points outside the bands as shown
in blue line which is 10% band in both side. The code is like this
ndata = length(data);
X = linspace(0, 1, ndata);%ndata is number of point
x = data/max(data); % data is normalized to 1
y = dy/max(dy);
xL = linspace(0.1,1, ndata); xL = xL(:); % lower line of band
yL = linspace(0,0.9, ndata); yL = yL(:);
xU = linspace(0,0.9, ndata); xU = xU(:);
yU = linspace(0.1,1, ndata); yU = yU(:);
hold on
plot(x, y, '.k')
plot(X, X, '-k'); X = X(:); % 45 degree angled line
plot(xL, yL, '-B'); % lower line of band
plot(xU, yU, '-B'); % upperline of band
pnts = [x y];
d1 = sqrt((x-X).^2+(y-X).^2); % calculation of distance between points
idout = find(d1>0.10); % here is the 10% band width and finding distance greater than 0.1
xOut = x(idout);
yOut = y(idout);
plot(xOut, yOut, '.r'); Want to display points outside the band in red
hold off
However I got something like this
</matlabcentral/answers/uploaded_files/18174/After.png> this is not the correct one. I think there is some algorithm problem or problem in handling code. Could any one help me in this regard. In fact, I just want the number of points oun side the band rather than plot. Plot is just the confirming.
Thanks in advance.

Respuesta aceptada

Michael Haderlein
Michael Haderlein el 15 de Sept. de 2014
I'm not exactly sure what's going on here (the link to your file does not work). However, if you want all data outside the lower/upper lines to be marked, you don't need some square root.
upperlim=y>x+0.1;
lowerlim=y<x-0.1;
plot(x(upperlim),y(upperlim),'ro')
plot(x(lowerlim),y(lowerlim),'co')
fprintf(1,'Data below limits: %d; data above limits: %d',sum(lowerlim),sum(upperlim))
  3 comentarios
Mahesh
Mahesh el 15 de Sept. de 2014
As you suggested I got like this
which is also not correct the code is like this
idU = y > X+0.1;
idL = y > X-0.1;
plot(x(idU), y(idU), '.b')
plot(x(idL), y(idL), '.r')
I am not sure why.
Mahesh
Mahesh el 15 de Sept. de 2014
even with such code
idU = x > X+0.1 & y > X+0.1;
idL = x < X-0.1 & y > X-0.1;
does it make sense please?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matched Filter and Ambiguity Function en Help Center y File Exchange.

Productos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by