2017-09-28 3 views
2

Je souhaite ajouter une zone de texte à un tracé dans lequel un nombre est affiché en notation scientifique. Voici mon code:Matlab: appliquer la notation scientifique dans la zone de texte

fano = 74585849.3443; figure; plot(x,y) annotation('String',['fano =',num2str(fano)],'FitBoxToText','on'); Ici, fano est affiché sous forme de nombre décimal. Comment puis-je changer le format en notation scientifique?

Répondre

2

Vous pouvez simplement créer la chaîne désirée avec la fonction sprintf. Voici trois exemples avec un nombre différent de décimales imprimées. Lors du formatage du texte avec% M.Nd, M spécifie la largeur du champ, N la précision (nombre de décimales) et d signifie décimal (signé). Voici trois exemples différents avec 2, 5 et 8 décimales. dim est un tableau avec l'emplacement et la taille de la zone de texte en unités normalisées par rapport à la taille de la figure, formatée en tant que [emplacement_location y_location largeur hauteur]. Dans votre cas, la largeur et la hauteur n'ont pas d'importance, puisque vous utilisez la propriété 'FitBoxToText'.

fano = 74585849.3443; 
figure; 
x = 0:0.01:10; 
y = sin(2*pi*1*x); 
plot(x,y); 
dim = [.5 .85 .0 .0]; 
str = sprintf('fano = %0.2d',fano); 
annotation('textbox',dim,... 
    'String',str,... 
    'FitBoxToText','on',... 
    'BackgroundColor','white'); 
dim = [.5 .65 .0 .0]; 
str = sprintf('fano = %0.5d',fano); 
annotation('textbox',dim,... 
    'String',str,... 
    'FitBoxToText','on',... 
    'BackgroundColor','white'); 
dim = [.5 .45 .0 .0]; 
str = sprintf('fano = %0.8d',fano); 
annotation('textbox',dim,... 
    'String',str,... 
    'FitBoxToText','on',... 
    'BackgroundColor','white'); 

est ici la sortie:

enter image description here