Графика в графическом интерфейсе Matlab

До сих пор у меня была только 1 ось в моем графическом интерфейсе, и я просто рисовал напрямую с помощью команды plot. Плюс мне нужно построить их в цикле.

for i = 1:length(sig)
    plot(sig(i).time,sig(i).signal,sig(i).time,updated(i).filter,)
    hold on
end

Теперь у меня есть 2 оси в моем графическом интерфейсе, как я могу сделать так, чтобы определенный график отображался на 1-й оси, а другой - на моей 2-й оси.

Теперь, например, мне нужно построить график ниже по 2-й оси.

 for i = 1:length(sig)
        plot(sig(i).time,sig(i).fil,sig(i).time,updated(i).sig,)
        hold on
    end

Любая помощь будет оценена


person Ashok    schedule 24.08.2016    source источник


Ответы (1)


Вы можете указать оси для функций hold и plot. Учитывая, что у вас есть две оси, h1 и h2 внутри вашей фигуры, вы можете сделать следующее:

hold(h1, 'on')
hold(h2, 'on')
for i = 1:length(sig)
    plot(h1, sig(i).time,sig(i).signal,sig(i).time,updated(i).filter)
    plot(h2, sig(i).time,sig(i).fil,sig(i).time,updated(i).sig)
end
person erfan    schedule 24.08.2016
comment
Спасибо @erfan, я понятия не имел, что должен упомянуть ручки для удержания, не могли бы вы рассказать мне, как мне связать обе оси, чтобы я мог масштабировать обе вместе? - person Ashok; 24.08.2016
comment
hold не принимает несколько осей. Невозможно построить одну и ту же кривую по обеим осям одним использованием plot. Но вы можете использовать его для всех осей перед входом в цикл. Тогда вы должны быть осторожны и включать дескриптор осей для каждой операции построения графика в свой код. Я обновляю свой пост. - person erfan; 24.08.2016
comment
Нет, я думаю, вы не поняли мой вопрос в комментарии, предыдущий ответ был в порядке. Я хотел связать обе оси, чтобы сохранить масштаб, как мы это делаем на подзаголовках. - person Ashok; 24.08.2016
comment
Ага! Затем вам просто нужно написать linkaxes([h1, h2], 'xy'), точно так же, как вы делаете это для подзаголовков. - person erfan; 24.08.2016