I want to change the ylabels on a Bode plot. As you know with the command bode there are two plots, one for magnitude and one for phase. But when you write:
ylabel('TheLabel')
Only the word "Phase" is changed to "TheLabel", but the word "Magnitude" is unchanged.
How do you write in order to change both the word "Magnitude" and the word "Phase"?

답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2015년 6월 21일
편집: Azzi Abdelmalek 2015년 6월 21일

1 개 추천

bode(tf(1,1:2)) % Example
axes=findobj('type','axes')
h_magnitude=get(axes(2),'YLabel')
h_phase=get(axes(1),'YLabel')
set(h_magnitude,'String','NewMagnitude')
set(h_phase,'String','NewPhase')

댓글 수: 4

Ok, your code works on it's own, but not when I try to incorporate it in my own. I wrote
s=zpk('s');
p1=1;
Hs=1/(1+s/p1);
bode(Hs, {0.1,10})
When I try to combine it with your code I get the following error message:
Error using InputOutputModel/subsref (line 43)
Subscript no. 2 is out of range.
Error in Rellpol (line 21)
bode(Hs(1,1:2)) % Example
How should I write in order to make it work together with my code? Please note that I want to be able to set the width of the x-axis manually, so that's why I wrote this in bold:
bode(Hs {0.1,10})
How should I write to do all this together?
Azzi Abdelmalek
Azzi Abdelmalek 2015년 6월 21일
This works fine with me
Oak Lore
Oak Lore 2015년 6월 21일
How do you write then? Can you post the code please?
s=zpk('s');
p1=1;
Hs=1/(1+s/p1);
bode(Hs, {0.1,10})
axes=findobj('type','axes')
h_magnitude=get(axes(2),'YLabel')
h_phase=get(axes(1),'YLabel')
set(h_magnitude,'String','NewMagnitude')
set(h_phase,'String','NewPhase')

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Get Started with Control System Toolbox에 대해 자세히 알아보기

태그

질문:

2015년 6월 21일

댓글:

2015년 6월 27일

Community Treasure Hunt

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

Start Hunting!

Translated by