How to select a number of points from a 2D matlab plot?

1 view (last 30 days)
I have created a matlab profile plot of an image and I would like to know if there is a way that would enable the user to select points from the 2D plot so that he can later on draw a best fit line on those points.
Thank you in advance

Accepted Answer

Thorsten
Thorsten on 13 Feb 2013
ginput does this job.
  2 Comments
UCL
UCL on 13 Feb 2013
Thanks for that. Would you know how to now plot these points with a line of best fit across them? I want a straight line of best fit so as to find its equation as well. I know polyfit might work, but not how.
Thank you
Thorsten
Thorsten on 13 Feb 2013
If you ask a new question, please do so by starting a new question so others will have the chance to answer, too.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 13 Feb 2013
UCL, try this demo:
% Make image that they can click on.
plot(cos(1:30),'b-');
grid on;
uiwait(msgbox('Click 5 points'));
[x y] = ginput(5)
hold on;
plot(x, y, 'r+', 'LineWidth', 2);
% Do the least squares fit
coeffs = polyfit(x, y, 1);
% Now find estimated values at
% locations other than where they clicked.
xFitted = 1:30; % x values that we want the fit for.
yFitted = polyval(coeffs, xFitted);
plot(xFitted, yFitted, 'r-', 'LineWidth', 2);
  4 Comments
Image Analyst
Image Analyst on 14 Feb 2013
It worked fine for me. It puts "+" markers where you click, and then it fits a line through the range 1-30 and draws a line with no markers through that range. You can fit over whatever range you want. I just picked 1 to 30 arbitrarily.

Sign in to comment.

Categories

Find more on Labels and Styling in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!