Matlab:3d中的动画线

时间:2016-03-28 19:47:09

标签: matlab plot animated

假设我有一个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

1 个答案:

答案 0 :(得分:2)

看起来您没有切换到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。

enter image description here