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 动画。
假设我有一个 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)
.
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 动画。