MATLAB: Putting transfer function expression in the title of a bode plot

latexMATLAB and Simulink Student Suite

Hi
I am trying to put a transfer function expression in the title of a bode plot.
This code worked in 2010b.
I am now using R2019a so this is the version my question applies to.
the code:
num=[1 2];
den=[1 7 49];
trans=tf(num,den);
syms s
n = sym(num);
d = sym(den);
ns = poly2sym(n,s);
ds = poly2sym(d,s);
tfsym = ns/ds;
tftitle = latex(tfsym);
figure(1)
bode(trans)
title(sprintf('Bode plot of: $$ %s $$', tftitle), 'Interpreter','latex')
It works but gives the following warnings:
String scalar or character vector must have valid interpreter syntax:
Bode plot of: $$ \frac{1}{s^2+2\,s+1} $$
> In defaulterrorcallback (line 12)
In ctrluis.axesgrid/labelpos (line 26)
In ctrluis.axesgrid/setlabels (line 83)
In ctrluis.axesgroup/addbypass>localTitle (line 24)
In mwbypass (line 17)
In title (line 49)
In bode (line 22)
Anyone any ideas?
Thank you
tgahan

Best Answer

MATLAB provides bodeoptions to add various parameters to your bode plot.
The following code may help you.
tfsym = ns/ds;
tftitle = latex(tfsym);
figure(1)
opts=bodeoptions;
opts.Title.Interpreter = 'latex';
opts.Title.FontSize = 12;
opts.XLabel.FontSize = 12;
opts.YLabel.FontSize = 12;
opts.Title.String = sprintf('Bode plot of: $$ %s $$', tftitle);
bodeplot(trans,opts);