How to plot magnitude and directions between 2 points?

11 visualizaciones (últimos 30 días)
Adilla Zulkifli
Adilla Zulkifli el 9 de Dic. de 2019
Comentada: Adilla Zulkifli el 10 de Dic. de 2019
Hi,
I have a set of stations coordinates in a text file. The stations coordinates consist of positions of 2 points (X1, Y1) and (X2, Y2) at 50 stations. How do I plot/visualize the magnitude and direction of the stations coordinate to see the the changes in distance and direction?
Basically I want the plot to look like this [x1, y1]--------->[x2, y2] (with correct magnitude and direction) but for 50 stations.
I have tried the function quiver, but still cannot plot all the 50 stations.
Can somebody show me how to plot the magnitude and direction for 50 stations?
Thank you.
  2 comentarios
darova
darova el 9 de Dic. de 2019
Can you attach your attempts? And how do you want magnitude and direction to look like?
Adilla Zulkifli
Adilla Zulkifli el 9 de Dic. de 2019
Attached is the input file in text file format. I would like to have Point 1A (X2, Y2) with magnitude and direction towards Point 1B (X1, Y1) which looks like an arrow. But the total of points I have are 50. So basically, the plot is supposed to have 50 arrows with magnitude and direction.
I have already tried using this coding but it doesn't work ;
data = load ('Input.txt');
[row, col] = size (data);
Y2 = data (:,1);
X2 = data (:,2);
Y1 = data (:,3);
X1 = data (:,4);
format long
delta_X = X2 - X1;
delta_Y = Y2 - Y1;
magnitude = sqrt(((delta_X).^2)+((delta_Y).^2));
format short
direction = wrapTo360(radtodeg(atan2(delta_X,delta_Y)));
P1 = [X2 Y2];
P2 = [X1 Y1] ;
DP = P2-P1;
figure(1)
quiver(P1(1),P1(2),DP(1),DP(2),0)
grid

Iniciar sesión para comentar.

Respuesta aceptada

darova
darova el 9 de Dic. de 2019
Editada: darova el 9 de Dic. de 2019
try this (not tested)
data = load ('Input.txt');
[row, col] = size (data);
Y2 = data (:,1);
X2 = data (:,2);
Y1 = data (:,3);
X1 = data (:,4);
delta_X = X2 - X1;
delta_Y = Y2 - Y1;
magnitude = sqrt(((delta_X).^2)+((delta_Y).^2));
cm = jet(50); % create colormap
ind = 1 + round(magnitude/max(magnitude)*49); % convert magnitude to index
plot(0,0)
hold on
for i = 1:length(X1)
quiver(X1(i),Y(i),delta_X(i),delta_Y(i),'color',cm(ind(i)))
end
hold off
  5 comentarios
Adilla Zulkifli
Adilla Zulkifli el 10 de Dic. de 2019
Yes. I already did that. Thank you again :)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by