Connecting dots with straight line in a loop.

38 views (last 30 days)
Hi all,
I have a question regarding connecting the dots.
Suppose I have the following sample data points:
example.png
I have a while-loop that identifies the first, second, and fourth points in the figure.
I know their index numbers and their (x,y) values.
Pictorially, I would like to connect with a straight line, the aforementioned points.
What is the best way of doing this?
My gut feeling is to input the "draw" code within the while-loop I have so each time I obtain the index of the next point I want to connect, I simply connect to that pictorially. But how to go about this?
Thanks in advance!

Accepted Answer

Image Analyst
Image Analyst on 20 Oct 2019
It seems that no one is exactly sure what you want to do, since the super obvious plot(x,y,'b-') doesn't seem to be it.
So I'll throw out a couple of guesses.
To close the figure (if that's what you want) you can tack the first point onto the array:
xp = [x, x(1)];
yp = [y, y(1)];
plot(xp, yp, 'b.-', 'LineWidth', 2, 'MarkerSize', 18);
grid on;
To make a bunch of points in between, you'd have to use polyfit and polyval() for each segment. Here it is for one segment with endpoints (x1, y1) and (x2, y2):
numNewPoints = 100; % Whatever you want.
newx = linspace(x1, x2, numNewPoints);
y = linspace(y1, y2, numNewPoints);
coefficients = polyfit([x1,x2], [y1, y2], 1);
newY = polyval(coefficients, newx);

More Answers (2)

darova
darova on 20 Oct 2019
Just use plot function
plot(x(index),y(index))
  2 Comments
darova
darova on 20 Oct 2019
If you have data (x,y) and it's order just use plot
x = rand(1,4);
y = rand(1,4);
index = [1 4 2 3];
plot(x(index),y(index))

Sign in to comment.


Products


Release

R2019b

Community Treasure Hunt

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

Start Hunting!