Question

J'ai ce complot

[Pleine résolution]

alt text

J'ai besoin de faire un droit vertical ligne à un point sur l'axe x que le L'utilisateur entre et Montrez les coordonnées de l'intersection de cette ligne verticale avec mon intrigue.

Comment cela peut-il être fait dans Matlab?

par exemple: L'utilisateur entre 1020, alors une ligne verticale droite sera tracée à 1020 qui répond à l'intrigue à un moment donné et les coordonnées de ce point seront affichées d'une manière ou d'une autre.

Était-ce utile?

La solution

Une façon de le faire est d'utiliser le Ginion Fonction pour sélectionner graphiquement un point à l'aide de la souris. En supposant que les données que vous avez tracées sont stockées dans une variable data, le code suivant devrait faire le genre de chose que vous voulez.

set(gca,'XLimMode','manual','YLimMode','manual');  % Fix axes limits
hold on;
[x,y] = ginput(1);  % Select a point with the mouse
x = round(x);       % Round x to nearest integer value
y = data(x);        % Get y data of intersection
plot([x x],get(gca,'YLim'),'k--');  % Plot dashed line
plot(x,y,'r*');     % Mark intersection with red asterisk
disp('Intersection coordinates:');
disp([x y]);        % Display the intersection point

Ce qui précède suppose que les valeurs X du graphique ne sont que des indices dans le tableau de données que vous tracez, ce qui semble être le cas du graphique que vous montrez ci-dessus.

Autres conseils

Essayez quelque chose comme:

x = 1020;

% plot a vertical line
ylimits = get(gca, 'YLim');
hold on;
plot([x x], ylimits, 'k');

% mark the intersection with the plot
plot(x, data(x), 'ro');
annot = sprintf('Intersection: x=%f, y=%f', x, data(x));
text(x, data(x), annot);

Le code n'est pas testé et suppose que votre chiffre est actuel, les données tracées sont stockées dans le tableau "données" et que le tracé d'origine a été effectué sans spécifier un vecteur X supplémentaire.

Vous pouvez également utiliser les fonctions hline et vline, qui peut être téléchargé à partir de: http://www.mathworks.com/matlabcentral/fileexchange/1039-hline-and-vline

Ils font pratiquement la même chose pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top