Asked by Tatte Berklee
on 20 Oct 2019 at 17:08

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?

Thanks in advance!

Answer by darova
on 20 Oct 2019 at 17:33

Just use plot function

plot(x(index),y(index))

Tatte Berklee
on 20 Oct 2019 at 21:18

darova
on 20 Oct 2019 at 21:33

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.

Answer by Image Analyst
on 20 Oct 2019 at 21:51

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

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 0 Comments

Sign in to comment.