Select 100 points either side from mouse click cooradinates
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Need help!!
I have a line graph. I would like to get 100 points either side of the plot from mouse click coordinate.
I was looking at bsxfun fucntion
bsxfun(@plus,xcoods(:,2),-100:100) Can be used ?
I am using 2016a matlab version
Réponses (2)
KSSV
le 13 Juin 2019
x = linspace(0,1) ;
y = sqrt(x) ;
% Mid point
M = [mean(x) mean(y)] ;
% points left side
idx1 = x<M(1) ;
% % points right side
idx2 = x>M(1) ;
figure
hold on
plot(x,y,'r') ;
plot(x(idx1),y(idx1),'.b')
plot(x(idx2),y(idx2),'.g')
legend('data','left points','right points')
0 commentaires
Rik
le 13 Juin 2019
Use the x-coordinate returned by getpts to select the data.
x=linspace(0,10,1000);
%generate a smooth random curve
y=sin(x)+polyval([0.01 0.1 1 10].*rand(1,4),x);
figure(1),clf(1)%only use clf during debugging
plot(x,y,'b','DisplayName','Data')
[xp,yp]=getpts;
if numel(xp)<1
clc,error('no points selected')
else
xp=xp(1);
end
pos_left=find(x<xp,100,'last');%might not return 100 points
pos_right=find(x>xp,100,'first');%might not return 100 points
hold on
plot(x(pos_left),y(pos_left),'.r','DisplayName','Left of click')
plot(x(pos_right),y(pos_right),'.g','DisplayName','Left of click')
hold off
legend
0 commentaires
Voir également
Catégories
En savoir plus sur Legend dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!