您可以执行以下操作。令 pos 是一个 Nx3 矩阵,它包含一个点的 x,y,z 数据,用于 N 个时间实例。您编写了一个设置 vars 等的主脚本,并创建了一个循环计时器 t1,它调用绘图函数“doPlot”。主要脚本是,
clear all
clc
pos=rand(100,3)*10; %position matrix of random x,y,z coordinates. 100 time instances here
ax=axes;
set(ax,'NextPlot','replacechildren');
axis([0 10 0 10 0 10]); %set axis limits- fit to your needs
Dt=0.1; %sampling period in secs
k=1;
hp=plot3(pos(k,1),pos(k,2),pos(k,3),'o'); %get handle to dot object
t1=timer('TimerFcn','k=doPlot(hp,pos,t1,k)','Period', Dt,'ExecutionMode','fixedRate');
start(t1);
接下来创建绘图函数 doPlot,
function k=doPlot(hp,pos,t1,k)
k=k+1;
if k<length(pos)
set(hp,'XData',pos(k,1),'YData',pos(k,2),'ZData',pos(k,3));
axis([0 10 0 10 0 10]);
else
stop(t1)
end
您将看到 3D 中的一个点(圆)在空间中随机移动。动画周期为 Dt 秒(在本例中为 0.1 秒)。你必须让它适合你的需要。这是 Matlab 中的一个基本动画。你可以做得更多。这取决于您的需求。