Plotting points simultaneously with input from figure using ginput
显示 更早的评论
I have six figures on which I need to plot points on the curve. I don't know how many points I need on each figure. This is my code to get all points:
for i = 1:6
figure(i)
plot(SLOPE{i, 1});
set(figure(i), 'units', 'normalized', 'outerposition', [0 0 1 1])
xlabel('Counts', 'FontSize', 12, 'FontWeight', 'bold')
ylabel(strcat('Slope\_', num2str(i)), 'FontSize', 12, 'FontWeight', 'bold')
title(strcat('SLOPE \_', num2str(i)))
hold on
[P1, P2] = ginput(10);
P1 = floor(P1);
SLOPE{i, 2} = [P1, P2];
if ~isempty(P1)
plot(P1, SLOPE{i}(P1), 'pentagram', 'Color', 'red', 'MarkerSize', 10,...
'LineWidth', 2, 'MarkerFaceColor', 'black');
end
end
I don't need more than 10 points in each figure, for some figures, I don't need any points. My problem is that I want each point to be plotted after I select it. With the above code, I can see all points plotted in a figure on hitting enter after I select all points. I have tried using 'waitforbuttonpress' along with a while loop, but a click is also considered a button press. Any help would be greatly appreciated.
Thanks,
Koustubh
回答(1 个)
Image Analyst
2016-7-23
You need to have an inner loop over the number of points
for i = 1:6
for n = 1 : 10
[x,y] = ginput(1); % Get one point at a time.
plot(..........
end
end
4 个评论
Koustubh Gohad
2016-7-24
Image Analyst
2016-7-24
No. The figure() and some other lines should not be inside the inner loop of course. Try again.
Image Analyst
2016-7-24
Do you want all 10 graphs up before any clicking starts? And the user can go into any one of the 10 plots that they want and click there? If so, that's entirely different and more complicated code.
Koustubh Gohad
2016-7-24
类别
在 帮助中心 和 File Exchange 中查找有关 Data Exploration 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!