Filter löschen
Filter löschen

bodeplot(), setoptions - YLabel, How to set?

10 Ansichten (letzte 30 Tage)
cdlapoin
cdlapoin am 15 Feb. 2022
Kommentiert: cdlapoin am 15 Feb. 2022
I have a bodeplot and want to change the Ylabel text from Magnitude to something more descriptive
h = bodeplot(sys,w);
setoptions(h,'YLabel','MyString');
doesn't work, so I look at it with getoptions()
>> getoptions(h,'Ylabel')
ans =
struct with fields:
String: {'Magnitude' 'Phase'}
FontSize: 11
FontWeight: 'normal'
FontAngle: 'normal'
Color: [0 0 0]
Interpreter: 'tex'
So it is a struct, but I cannot figure out how to address it properly with the way setoptions() is formatted. I tried:
setoptions(h,'YLabel(1).String','MyString')
which doesn't work or any of the other obvious variations. so now it's bothering me. Please help!

Akzeptierte Antwort

Voss
Voss am 15 Feb. 2022
Bearbeitet: Voss am 15 Feb. 2022
rng("default")
sys = rss(5);
h = bodeplot(sys);
ylabel_opts = getoptions(h,'YLabel')
ylabel_opts = struct with fields:
String: {'Magnitude' 'Phase'} FontSize: 11 FontWeight: 'normal' FontAngle: 'normal' Color: [0 0 0] Interpreter: 'tex'
% set only the magnitude plot ylabel string (leave phase alone):
ylabel_opts.String{1} = 'MyString';
% apply the new settings:
setoptions(h,'YLabel',ylabel_opts);
  1 Kommentar
cdlapoin
cdlapoin am 15 Feb. 2022
so the correct answer is to build a complete YLabel struct, then replace the existing on with setoptions(). perfect! Thanks!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Paul
Paul am 15 Feb. 2022
opts = bodeoptions;
opts.Ylabel.String = {'mymag' 'myphase'};
bodeplot(tf(1,[1 1]),opts)

Kategorien

Mehr zu Plot Customization finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by