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

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)

Produkte

Version

R2021a

Gefragt:

am 15 Feb. 2022

Kommentiert:

am 15 Feb. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by