我有一个包含4个变量的矩阵。 我想将结果绘制为3D表面动画,其中3个变量为x,y和z,第4个变量为time(t)。
我想代码就像:
figure(1)
plot4d(Results(:,1), Results(:,2), Results(:,6), Results(:,3))
以下是一些示例数据:
X Y t Z
-0.1111 1.2670 1.1000 0.0000 0.0000 9.4568
-0.1111 1.2670 1.2000 0.0000 0.0000 15.9115
-0.1111 1.2670 1.3000 0.0000 0.0000 18.3639
-0.1111 1.2670 1.4000 0.0000 0.0000 22.3732
-0.1111 1.2670 1.5000 0.0000 0.0000 23.3274
-0.1111 1.2670 1.6000 0.0000 0.0000 23.3389
-0.1111 1.2670 1.7000 0.0000 0.0000 23.3437
-0.1111 1.2670 1.8000 0.0000 0.0000 22.0600
-0.1111 1.2670 1.9000 0.0000 0.0000 23.7531
-0.1111 1.2670 1.0000 0.0000 0.0000 0
-0.1111 1.2670 2.1000 0.0000 0.0000 0
-0.1111 1.2670 2.2000 0.0000 0.0000 0
-0.1111 1.2670 2.3000 0.0000 0.0000 0
-0.1111 1.2670 2.4000 0.0000 0.0000 0
-0.1111 1.2670 2.5000 0.0000 0.0000 0
-0.1111 1.2670 2.0000 0.0000 0.0000 23.1249
-0.1111 1.5330 1.1000 0.0000 0.0000 20.7103
-0.1111 1.5330 1.2000 0.0000 0.0000 40.2953
-0.1111 1.5330 1.3000 0.0000 0.0000 53.0801
-0.1111 1.5330 1.4000 0.0000 0.0000 63.1132
目标是制作一个随时间变化的3D曲面图,以便看起来有人正在挥舞毯子;)
答案 0 :(得分:0)
如果您绘制的是一条线,那么您可以逐帧显示它,根据时间戳(假设为秒)暂停它们之间:
x = Results(:,1);
y = Results(:,2);
z = Results(:,3);
t = Results(:,4);
dt = [diff(t);eps];
h = axes('Parent', figure());
hold(h, 'off');
for k = 1:numel(t)
plot3(h, x(1:k), y(1:k), z(1:k), '-*k');
pause(dt(k));
end;
如果要捕捉电影的动画,请检查MATLAB tutorial page。