I는 I가 사용자 및 이 좌표를 표시 입력하는 x 축상의 점에서 직선 수직 라인을해야이 플롯을MATLAB 플롯에서 점을 어떻게 표시합니까?
을 내 음모로 그 수직선의 교차점.
어떻게 이것을 MATLAB에서 할 수 있습니까?
예 : 사용자가 1020을 입력하면 어떤 점에서 플롯과 만나는 직선 수직선이 그려지고 그 점의 좌표가 어떻게 든 표시됩니다.
I는 I가 사용자 및 이 좌표를 표시 입력하는 x 축상의 점에서 직선 수직 라인을해야이 플롯을MATLAB 플롯에서 점을 어떻게 표시합니까?
을 내 음모로 그 수직선의 교차점.
어떻게 이것을 MATLAB에서 할 수 있습니까?
예 : 사용자가 1020을 입력하면 어떤 점에서 플롯과 만나는 직선 수직선이 그려지고 그 점의 좌표가 어떻게 든 표시됩니다.
이 작업을 수행하는 한 가지 방법은 GINPUT 기능을 사용하여 그래픽으로 마우스를 사용하여 점을 선택하는 것입니다. 플롯 한 데이터가 변수 data
에 저장되었다고 가정하면 다음 코드는 원하는대로 정렬해야합니다.
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
은 상기 그래프의 x 값은 단지 위에서 보여주는 그래프로부터 케이스 것으로 보인다는 플로팅하는 데이터 배열의 인덱스임을 가정한다.
같은 것을보십시오 :
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);
코드를 테스트하고 그림은, 플롯 데이터가 배열 "데이터"에 저장되어있는 현재입니다 원래 줄거리가 지정하지 않고 할 것으로 가정하지 않습니다 여분의 x 벡터.
당신은 또한에서 다운로드 할 수있는 기능 hline
및 vline,
를 사용할 수 있습니다 http://www.mathworks.com/matlabcentral/fileexchange/1039-hline-and-vline
그들은 당신을 위해 실질적으로 동일한 작업을 수행.