matlab图形数据移动,MATLAB将数据点同时移动到单独的子图中

我想在MATLAB中的一段时间内可视化数据点在整个空间中的移动.但是,我希望我的图形显示的方式是在任何给定时间只绘制一个瞬间.这很简单,我只是创建了一个for循环来更新我的数据中每组坐标(x,y,z)的3D绘图显示.但是,我希望始终显示该图的4个不同视角.我很清楚如何在MATLAB中设置子图,这不是问题.我的问题是让所有这四个子图同时执行,这样所有4个子图总是显示相同的时间点.

如何处理这个问题?

根据要求,我的具有单个图的图的代码如下所示:

datan = DATA; %data in form of x,y,z,a,b,c by column for row# of time points

tib=zeros(size(datan,1),12);

tib(:,1:3) = datan(:,1:3);

tib_ref=tib(1,1:3);

for i=1:size(datan,1)

tib(i,1:3)=tib(i,1:3)-tib_ref;

end

angle_to_dircos

close all

figure('Name','Directions (Individual Cycles)','NumberTitle','off')

for cc=1:2

hold off

for bb=1:10:size(tib,1);

scatter3(tib(bb,1),tib(bb,2),tib(bb,3),'green','filled'); %z and y axes are flipped in polhemus system

hold on

p0 = [tib(bb,1),tib(bb,2),tib(bb,3)];

p1 = [tib(bb,1)+10*tib(bb,4),tib(bb,2)+10*tib(bb,5),tib(bb,3)+10*tib(bb,6)];

p2 = [tib(bb,1)+10*tib(bb,7),tib(bb,2)+10*tib(bb,8),tib(bb,3)+10*tib(bb,9)];

p3 = [-(tib(bb,1)+100*tib(bb,10)),-(tib(bb,2)+100*tib(bb,11)),-(tib(bb,3)+100*tib(bb,12))];

vectarrow(p0,p1,1,0,0)

hold on

vectarrow(p0,p2,0,1,0)

hold on

vectarrow(p0,p3,0,0,1)

hold on

az = 90;

el = 0;

view(az, el);

xlim([-50,50]);

ylim([-50,50]);

zlim([-50,50]);

xlabel('distance from center in X');

ylabel('distance from center in Y');

zlabel('distance from center in Z');

title('XYZ Scatter Plots of Tracker Position');

hold on

plot3(0,0,0,'sk','markerfacecolor',[0,0,0]);

p0 = [0,0,0];

p1 = [10,0,0];

p2 = [0,10,0];

p3 = [0,0,100];

vectarrow(p0,p1,1,0,0)

hold on

vectarrow(p0,p2,0,1,0)

hold on

vectarrow(p0,p3,1,0,1)

drawnow;

end

end

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值