# Connecting dots with straight line in a loop.

15 views (last 30 days)
Tatte Berklee on 20 Oct 2019
Answered: Image Analyst on 20 Oct 2019
Hi all,
I have a question regarding connecting the dots.
Suppose I have the following sample data points: 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?

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);

darova on 20 Oct 2019
Just use plot function
plot(x(index),y(index))

Tatte Berklee on 20 Oct 2019
Hi! But how does the plot make the dots connect? Not only do I want the dots appear on the plot but also connect to the subsequent dot I obtain.
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))

ABHILASH SINGH on 20 Oct 2019