Как я могу указать, к какой фигуре должен идти сюжет? - PullRequest
17 голосов
/ 02 марта 2012

У меня открыто несколько фигур, и я хочу обновить их независимо во время выполнения. Следующий пример с игрушкой должен прояснить мое намерение:

clf;

figure('name', 'a and b'); % a and b should be plotted to this window
hold on;
ylim([-100, 100]);

figure('name', 'c'); % only c should be plotted to this window

a = 0;
b = [];
for i = 1:100
    a = a + 1;
    b = [b, -i];
    c = b;
    xlim([0, i]);
    plot(i, a, 'o');
    plot(i, b(i), '.r');
    drawnow;
end

Проблема здесь заключается в том, что когда я открываю вторую figure, я не могу сказать plot функциям отображать на первой вместо второй (и только c должна отображаться на второй).

Ответы [ 2 ]

18 голосов
/ 02 марта 2012

Вы можете использовать что-то вроде

figure(1)
plot(x,y) % this will go on figure 1

figure(2)
plot(z,w) % this will go on another figure

Команда также установит фигуру видимой и поверх всего.

Вы можете переключаться между цифрами по мере необходимости, введя одну и ту же команду figure.Кроме того, вы также можете использовать дескриптор для фигуры:

h=figure(...)

, а затем использовать figure(h) вместо использования числовых индексовС помощью этого синтаксиса вы также можете предотвратить появление фигуры сверху, используя

set(0,'CurrentFigure',h)
15 голосов
/ 02 марта 2012

Вы можете указать объект оси в команде plot.Смотрите здесь:

http://www.mathworks.de/help/techdoc/ref/plot.html

Итак, откройте фигуру, вставьте оси, сохраните идентификатор объекта осей, а затем нанесите на него график:

figure
hAx1 = axes;
plot(hAx1, 1, 1, '*r')
hold on

figure
hAx2 = axes;
plot(hAx2, 2, 1, '*r')
hold on


plot(hAx2, 3, 4, '*b')
plot(hAx1, 3, 3, '*b')

В качестве альтернативы, вы можете использовать gca вместо создания объекта осей самостоятельно (потому что он автоматически создается внутри фактической фигуры, когда он не существует!)

figure
plot(1,1)
hAx1 = gca;
hold on

figure
plot(2,2)

plot(hAx1, 3, 3)

См. Следующую иерархию, представляющую отношения между фигурами и осями

enter image description here

С http://www.mathworks.de/help/techdoc/learn_matlab/f3-15974.html.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...