2009-10-04 3 views
9

У меня этот участокКак отметить точку на участке MATLAB?

[Full Resolution]

alt text

мне нужно сделать прямую вертикальной линии в точке на оси х, что пользователя вводит и показать координаты пересечение этой вертикальной линии с моим сюжетом.

Как это можно сделать в MATLAB?

например: пользователь вводит 1020, тогда прямая вертикальная линия будет нарисована на 1020, что соответствует графику в какой-то момент, и координаты этой точки будут показаны как-то.

ответ

5

Один из способов сделать это - использовать функцию 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 

выше предполагает, что х-значения графика только индексы в массиве данных, которые вы черчения, которые, как представляется, в случае с графика вы показываете выше.

3

Попробуйте что-то вроде:

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-вектор.

Смежные вопросы