在matlab中同时绘制两个断开连接的表面
Plotting two disconnnected surfaces simultaneously in matlab
我是 运行 一个 for 循环,目前使用 3 个不同矩阵(代表 x、y 和z) 尺寸为 21 x 602。但是,同时我想浏览绘图列 for 302:k+301
,因此本质上,我同时获得两个通量管的动画。
目前,我有:
p = surf(nan(21,602), nan(21,602), nan(21,602));
for k = 1:301
% Update all of the plot objects at once
set(p, 'XData', x(:, 1:k), ...
'YData', y(:, 1:k), ...
'ZData', z(:, 1:k),'facecolor', Colour, 'edgecolor',EdgeColour,...
'facelighting','gouraud')
drawnow
end
但显然,这只是绘制当前编写的第一个动画。如何调整它以同时绘制所需的其他列(以及其他动画)?
谢谢
这个怎么样:
p1 = surf([0 0 ;0 0]);
hold all
p2 = surf([0 0 ;0 0]);
for k = 1:301
% Update all of the plot objects at once
set(p1, 'XData', x(:,1:k), ...
'YData', y(:,1:k), ...
'ZData', z(:,1:k),'facecolor', Colour, 'edgecolor',EdgeColour,...
'facelighting','gouraud')
set(p2, 'XData', a(:,1:k), ...
'YData', b(:,1:k), ...
'ZData', c(:,1:k),'facecolor', Colour, 'edgecolor',EdgeColour,...
'facelighting','gouraud')
drawnow
end
hold off
x,y,z
是一个螺旋的数据,a,b,c
是另一个螺旋的数据。
您需要创建两个不同的轴(p1
和 p2
),因此 surf
不想完全连接数据
希望它能回答问题:)
我是 运行 一个 for 循环,目前使用 3 个不同矩阵(代表 x、y 和z) 尺寸为 21 x 602。但是,同时我想浏览绘图列 for 302:k+301
,因此本质上,我同时获得两个通量管的动画。
目前,我有:
p = surf(nan(21,602), nan(21,602), nan(21,602));
for k = 1:301
% Update all of the plot objects at once
set(p, 'XData', x(:, 1:k), ...
'YData', y(:, 1:k), ...
'ZData', z(:, 1:k),'facecolor', Colour, 'edgecolor',EdgeColour,...
'facelighting','gouraud')
drawnow
end
但显然,这只是绘制当前编写的第一个动画。如何调整它以同时绘制所需的其他列(以及其他动画)?
谢谢
这个怎么样:
p1 = surf([0 0 ;0 0]);
hold all
p2 = surf([0 0 ;0 0]);
for k = 1:301
% Update all of the plot objects at once
set(p1, 'XData', x(:,1:k), ...
'YData', y(:,1:k), ...
'ZData', z(:,1:k),'facecolor', Colour, 'edgecolor',EdgeColour,...
'facelighting','gouraud')
set(p2, 'XData', a(:,1:k), ...
'YData', b(:,1:k), ...
'ZData', c(:,1:k),'facecolor', Colour, 'edgecolor',EdgeColour,...
'facelighting','gouraud')
drawnow
end
hold off
x,y,z
是一个螺旋的数据,a,b,c
是另一个螺旋的数据。
您需要创建两个不同的轴(p1
和 p2
),因此 surf
不想完全连接数据
希望它能回答问题:)