How to get subscripts in the legend of a Nichols plot?

13 vues (au cours des 30 derniers jours)
Bill Tubbs
Bill Tubbs le 28 Août 2020
Commenté : Adam Danz le 28 Août 2020
How do I put subscripts in a Nichols plot legend?
This works fine in a normal plot:
figure
plot([0 1],[3 4]); hold on
plot([0 1],[4 5])
plot([0 1],[5 6])
legend('G_2', 'G^2', 'G^2_p')
saveas(gcf,'test1.png')
produces:
But:
figure
nichols(Gp); hold on
nichols(Gc1*Gp);
nichols(Gc2*Gp);
legend('G_2', 'G^2', 'G^2_p')
saveas(gcf,'test2.png')
produces:
I tried this:
figure
nichols(Gp); hold on
nichols(Gc1*Gp);
nichols(Gc2*Gp);
legend('$G_2$', '$G^2$', '$\hat{G}^2_{p}$','Interpreter','Latex')
Produces:
Maybe this is the same bug reported in this question in 2015: Subscripts in MATLAB Legends

Réponse acceptée

Adam Danz
Adam Danz le 28 Août 2020
This is caused by an extra excape character added when the legend is initially created.
Details are explained by these two answers here.
As explained in that link, you can call the legend twice and the second time should fix the problem.
% Demo
H = tf([-4 48 -18 250 600],[1 30 282 525 60]);
nichols(H)
legend('G^2_p')
legend('G^2_p') % <-- intentionally called again
  2 commentaires
Bill Tubbs
Bill Tubbs le 28 Août 2020
Modifié(e) : Bill Tubbs le 28 Août 2020
Thanks.
Indeed you are right:
% First time
h1 = legend('G_2', 'G^2', 'G^2_p')
h1 =
Legend (G\_2, G^2, G^2\_p) with properties:
...
% 2nd time
h2 = legend('G_2', 'G^2', 'G^2_p')
h2 =
Legend (G_2, G^2, G^2_p) with properties:
...
How unusual.
Adam Danz
Adam Danz le 28 Août 2020
Indeed. The surprises we find in the entrails for Matlab....

Connectez-vous pour commenter.

Plus de réponses (0)

Produits


Version

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by