Построение двух отключенных поверхностей одновременно в Matlab

Я бегу за цикл, который в настоящее время оживляет surf графики с использованием столбцов 1: k (for k=1:301) из 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

Но очевидно, что это только сюжет первой анимации, как она написана в данный момент. Как это можно адаптировать для одновременного построения графиков других требуемых столбцов (и, следовательно, другой анимации)?

Спасибо

1 ответ

Решение

Как насчет этого:

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 не хочу соединять данные вообще

Надеюсь, что это отвечает на вопрос:)

Другие вопросы по тегам