Why does the Bode function behaves differently in a subplot?

Hi,
I want to run a script several times in a row, where every run new lines are plotted in a Bode diagram. This does not work when I use subplots, see the simple example below. Both lines are plotted this way, but the first line disappears when the 2 lines are uncommented and the example is rerun. So how can I plot these 2 lines in 1 Bode subplot? Thank you in advance!
Best regards, Laszlo
H = tf([1],[100]);
figure(100)
% subplot(2,1,1)
hold on
bodemag(H)
grid on
defcol
H = tf([1],[1 0 0]);
figure(100)
% subplot(2,1,1)
hold on
bodemag(H)
grid on
defcol

Answers (2)

This works:
H = tf([1],[100]);
figure(100)
subplot(2,1,1);
[mag,ph,wout]=bode(H);
semilogx(wout,20*log10(squeeze(mag)));
grid on
xlabel('Frequency (rad/sec)');
ylabel('Magnitude (dB)');
title('Bode Diagram');
hold on;
H = tf([1],[1 1 0]);
figure(100)
subplot(2,1,1)
[mag,ph,wout]=bode(H);
semilogx(wout,20*log10(squeeze(mag)));
This litte script works for me; maybe something unexpected is going on in your bodemag function?
function plotdata(s)
figure(100)
subplot(2,1,1)
hold on
plot(1:10, s*rand(1,10), 'k')
grid on
figure(100)
subplot(2,1,1)
hold on
plot(1:10, s*rand(1,10), 'r')
grid on

3 Comments

Thanks Thorsten for your answer. I agree, several lines can be plotted when using the 'plot' command in subplots. Unfortunately, the same approach does not work for Bode. In my script I didn't change the bodeoptions, I just use the default settings. I have no clue why Bode has problems while plot works..
I don't have the System Identification TB, so I have to ask if this works for you:
bodemag(gca, H)
Too bad, that does not solve the problem.

Sign in to comment.

Asked:

on 15 Dec 2014

Commented:

on 6 Jan 2015

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!