, Как раз когда сольный разработчик, я использую управление исходным кодом. В современной среде разработки программного обеспечения я могу думать о немногих, если бы любые причины, почему Вы не использовали бы управление исходным кодом. Более удивительно, что у Вас уже нет его. Вопрос кажется мне чем-то как маляры, спрашивающие, "Почему мы должны принять использование лестничных структур. Вы знаете, лестничные структуры не нарисовали дом - кисти делают".
Один из способов сделать это - использовать функцию 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);
Код не проверен и предполагает, что ваш рисунок является текущим, нанесенные данные хранятся в массиве «data» и что исходный график был создан без указания дополнительного x-вектора.