2016-05-19 34 views
0

我有三个变量:px,pyt,它们分别表示x坐标,y坐标和时间。在Matlab中绘制来自3个变量的线图

我需要有一个二维线图,以便随时间变化显示位置的演变。我不需要绘制确切的位置,也不需要知道物体的位置。我只是为了想象物体位置变化的轨迹和速度。例如,如果在t1和t2之间对象保持不动,则该线将完全水平。如果它稍微移动,线条会稍微增加一点,如果线条移动得很厉害,线条的斜率也会增加很多。

换句话说,我需要一种方法将两个位置坐标合并为一个单一变量,以便随着时间的推移进行绘图,但不会丢失它们给我的有意义的信息。

我试图用plot3来绘制3D中的信息,但是它的可视化还不够清晰,所以我决定改变我的方法,并试图只显示对象轨迹变化的速度。

回答

1

在下面的代码中,我计算了距原点的距离并将其与时间一起绘制。

distance=sqrt(px.^2+py.^2); 
plot(t,distance); 

如果不符合您的要求,请使用下面的代码。在这里,我计算了从一个点(x,y)到下一个点(x1,y1)的位移,并在前面附加零,以使尺寸相同。然后找到累计和,这样当对象保持静止时,您将得到一条水平线。

p=[px;py]; 
pd=p; 
p(:,end)=[]; 
pd(:,1)=[]; 
p=[[0;0] p]; 
pd=[[0; 0] pd]; 
displacement=sqrt((pd(1,:)-p(1,:)).^2+(pd(2,:)-p(2,:)).^2); 
cdisp=cumsum(displacement); 
plot(t,cdisp); 
+0

谢谢,这工作得很好! –