How to use num2str inside text with latex interpreter?

48 ビュー (過去 30 日間)
Giuseppe
Giuseppe 2022 年 10 月 6 日
コメント済み: Star Strider 2022 年 10 月 7 日
Hi to everyone, I want to assign a number to a string inside a text command to dynamically change the output of the text inside the plot.
Here is an attempt of coding:
clc;clear all;close all;
figure
i=1
i = 1
plot(1:6,2:7)
text(2,4,'$L_{1}$','Interpreter',"latex");
text(4,5,'$L_{',num2str(i),'}$','Interpreter',"latex");
Error using text
Unrecognized property 1 for class Text.
Can you help me to correclty code the last line?

採用された回答

Star Strider
Star Strider 2022 年 10 月 7 日
I prefer to use sprintf for this. (If you use any escape characters, you need to use double backslants. See the documentation for detais.).
figure
i=1
i = 1
plot(1:6,2:7)
text(2,4,sprintf('$L_{%d}$',i),'Interpreter',"latex");
text(4,3,sprintf('$L_{\\frac{%d}{2}}$',i),'Interpreter',"latex");
.
  4 件のコメント
Giuseppe
Giuseppe 2022 年 10 月 7 日
Clear explaination! Thanks aganin!
Star Strider
Star Strider 2022 年 10 月 7 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (2 件)

Jeff Miller
Jeff Miller 2022 年 10 月 7 日
I think you need square brackets like this to assemble all the characters into a single string
text(4,5,['$L_{',num2str(i),'}$'],'Interpreter',"latex");

dpb
dpb 2022 年 10 月 7 日
i=1;
text(0.4,0.5,"L_{" + i + "}")
i=i+1;
text(0.4,0.4,"\it L_{" + i + "}")
i=i+1;
text(0.4,0.3,"\it L\rm_{" + i + "}")
Variations on a theme; the above doesn't require LaTeX; the default TeX interpreter can manage on its own.

カテゴリ

Help Center および File ExchangeCharacters and Strings についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by