given that you have this line of code how do you count the number of points in each quadrant ?

Classical = pdist2(matrix_logdiff_nsample, mean(matrix_logdiff_nsample),'mahal');
p = size(matrix_logdiff_nsample,2);
chi2quantile = chi2inv(0.99,p);
[SFmcd, MFmcd, Fmcd, OutFmcd] = robustcov(matrix_logdiff_nsample);
plot(Classical, Fmcd, 'o')
line([chi2quantile, chi2quantile], [0, 120], 'color', 'r')
line([0, 80], [chi2quantile, chi2quantile], 'color', 'r')
hold on
plot(Classical(OutFmcd), Fmcd(OutFmcd), 'b*')
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('Distance Plot, Fast MCD method')

 Respuesta aceptada

Adam Danz
Adam Danz el 12 de Jul. de 2020
Editada: Adam Danz el 13 de Jul. de 2020
You just need to modify either of the two answers received for similar questions in the past (listed under your question).
To modify this answer, you just need to replace the centerPoint_x, centerPoint_y values with the coordinates you're using to define the quadrants.
Based on your image it would look something like,
centerPoint_x = 15; % approximate guess based on image
centerPoint_y = 18; % approximate guess based on image

5 comentarios

Could you share your updated code and explain what's not working?
More detail needed. Are you getting an error? Are the results incorrect?
ok let me share
Classical = pdist2(matrix_logdiff_nsample, mean(matrix_logdiff_nsample),'mahal');
p = size(matrix_logdiff_nsample,2);
chi2quantile = chi2inv(0.99,p);
[SFmcd, MFmcd, Fmcd, OutFmcd] = robustcov(matrix_logdiff_nsample);
plot(Classical, Fmcd, 'o')
line([chi2quantile, chi2quantile], [0, 120], 'color', 'r')
line([0, 80], [chi2quantile, chi2quantile], 'color', 'r')
hold on
plot(Classical(OutFmcd), Fmcd(OutFmcd), 'b*')
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('Distance Plot, Fast MCD method')
centerPoint_y = 18;
centerPoint_x = 15;
centerPoint_x = min(xlim) + range(xlim)/2;
centerPoint_y = min(ylim) + range(ylim)/2; % Same thing as above but with ylim
quad1 = x >= centerPoint_x & y >= centerPoint_y;
quad2 = x < centerPOint_x & y >= centerPoint_y;
% %quad3 = % fill in....
% %quad4 = % file in....
% % Points that are in Quad1 are
x(quad1), y(quad1)
counts = accumarray([1+(matrix_logdiff_nsample(:)>=mean(matrix_logdiff_nsample)), 1+(matrix_logdiff_nsample(:)>=mean(matrix_logdiff_nsample))], 1, [2 2]);
Adam Danz
Adam Danz el 13 de Jul. de 2020
Editada: Adam Danz el 15 de Jul. de 2020
You need to exchange "x" and "Y" with whatever values you're using to define the center point. Don't just copy-paste without doing the thinking.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Etiquetas

Preguntada:

el 12 de Jul. de 2020

Editada:

el 15 de Jul. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by