Matlab:3d 动画线

Matlab: Animated Line in 3d

假设我有一个 nx3 矩阵(在本例中为 100x3),其中每一列代表 x、y、z 坐标,在一些离散时间样本中,在 3d 中。我想使用 animatedLine 函数在给定时间跟踪最多 10 个点的坐标。我一直在使用 Matlab 文档,但仍然坚持如何正确使用它。

我是否需要预先定义网格,或者 Matlab 可以在给定数据的情况下自动执行此操作? (对于这个例子,矩阵是随机的,然而,在实际数据集中,矩阵是已知的)

 A = rand(100, 3)
 x = A(:, 1);
 y = A(:, 2);
 z = A(:, 3);

 grid on;
 h = animatedline('MaximumNumPoints', 10);

for k = 1:length(x)
addpoints(h,x(k),y(k),z(k));
drawnow
end

您似乎没有切换到 3D 视图,并且 animatedline 不会自动为您更改视图。因此,您需要使用 view(3).

自行指定 3D 视图
A = rand(100, 3)
x = A(:, 1);
y = A(:, 2);
z = A(:, 3);

grid on;
h = animatedline('MaximumNumPoints', 10);

% Force a 3D view
view(3);

for k = 1:length(x)
    addpoints(h,x(k),y(k),z(k));
    drawnow
end

并将结果作为 GIF 动画。