41 views (last 30 days)

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

Image Analyst
on 23 Jul 2016

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

Image Analyst
on 24 Jul 2016

No. The figure() and some other lines should not be inside the inner loop of course. Try again.

Image Analyst
on 24 Jul 2016

Sign in to comment.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.