在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是另一个螺旋的数据。 您需要创建两个不同的轴(p1p2),因此 surf 不想完全连接数据

希望它能回答问题:)