2009-10-04 15 views
9

mam Wykres tenJak oznaczyć punkt na działce MATLAB?

[Full Resolution]

alt text

trzeba zrobić prosto pionowej linii od punktu na osi x, które użytkownik wchodzi i określają współrzędne skrzyżowanie tej pionowej linii z moim działkiem.

Jak to zrobić w programie MATLAB?

np użytkownik wprowadzi 1020 wówczas linią prostą pionową zostaną opracowane w 1020 roku, który styka się z wykresu w pewnym punkcie i współrzędne tego punktu będą przedstawione w jakiś sposób.

Odpowiedz

5

Jednym ze sposobów, aby to zrobić, jest użycie funkcji GINPUT do graficznego wyboru punktu za pomocą myszy. Zakładając, że dane, które narysowałeś, są przechowywane w zmiennej data, poniższy kod powinien zrobić coś, co chcesz.

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 

Powyższe zakłada, że ​​rentgenowski wartości na wykresie są tylko indeksy do tablicy danych jesteś spisek, który wydaje się być przypadek z wykresu Ci pokazać powyżej.

3

Spróbuj czegoś takiego:

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); 

Kod nie został przetestowany i zakłada, że ​​figura jest obecny onu, wykreślono dane są przechowywane w tablicy „dane” i że oryginalna fabuła została wykonana bez określania dodatkowy x-wektor.

Powiązane problemy