how to write numbers with 10^ format in matlab?

39 visualizzazioni (ultimi 30 giorni)
How to print 123456 as 1.2x10^5 in a matlab figure?
str5 = ['CC = ' num2str(123456) ];
str = sprintf('%s',str5);
annotation('textbox',[0.1 0.1 0.1 0.1],'String',str,'FitBoxToText','on');
Any help will be greatly appriciated.

Risposta accettata

Stephen23
Stephen23 il 10 Ago 2022
Modificato: Stephen23 il 10 Ago 2022
str = strrep(sprintf('CC = %.1e',123456),'e','x10^')
str = 'CC = 1.2x10^+05'
str = regexprep(sprintf('CC = %.1e',123456),'e(\D)0*(\d+)$','x10^$1$2')
str = 'CC = 1.2x10^+5'
  4 Commenti
Stephen23
Stephen23 il 10 Ago 2022
Modificato: Stephen23 il 10 Ago 2022
"Why does that appear like this"
This is due to how the graphics engine interprets text. You need to either:
str = strrep(sprintf('CC = %.1e',123456),'e','x10^')
str = 'CC = 1.2x10^+05'
plot(0:1,0:1)
annotation('textbox',[0.5,0.5,0.1,0.1],'String',str,'interpreter','none')
MP
MP il 11 Ago 2022
str = strrep(sprintf('CC = %.1e',123456),'e','x10\^');
worked!!
Thank you so much @Stephen23

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Interactive Control and Callbacks in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by