Suivant: Programmer sous MATLABPrécédent:Calculer
avec MATLAB
Voir: Table des matière
- Index - Accueil
format long | : | format long à 15 chiffres. |
format short e | : | format court à 5 chiffres avec notation en virgule flottante. |
format long e | : | format long à 15 chiffres avec notation en virgule flottante. |
MATLAB dispose également des formats format short g et format long g qui utilise la << meilleure >> des deux écritures à virgule fixe ou à virgule flottante. On obtiendra tous les formats d'affichage possibles en tapant help format. On impose un format d'affichage en tapant l'instruction de format correspondante dans la fenêtre de contrôle, par exempleformat long. Pour revenir au format par défaut on utilise la commande format ou format short.
>> pi
ans =
3.1416
>> format long
>> pi
ans =
3.14159265358979
>> format short e
>> pi^3
ans =
3.1006e+01
>> format short g
>> pi^3
ans =
31.006
>> format short
>>
>> A = magic(4);On utilise fréquemment la commande disp avec un tableau qui est une chaîne de caractères pour afficher un message. Par exemple disp('Calcul du déterminant de la matrice A'). On utilise également la commande disp pour afficher un résultat. Par exemple disp(['Le déterminant de la matrice A vaut ', num2str(det(A))]). On remarque que l'usage de la commande disp est alors un peu particulier. En effet un tableau doit être d'un type donné, les éléments d'un même tableau ne peuvent donc être des chaînes de caractères et des valeurs numériques. On a donc recours à la commande num2str (<< number to string >>) pour convertir une valeur numérique en une chaîne de caractères. Par défaut la commande num2str affiche 4 décimales mais il est possible de lui spécifier le nombre de décimales souhaité en second paramètre. De même il est possible de lui spécifier un format d'affichage particulier de la valeur numérique; on consultera la documentation MATLAB pour plus de détails. Attention, si la chaîne de caractères contient une apostrophe il est impératif de doubler l'apostrophe.
>> disp(A)
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> A
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>>
Sous cette forme il est impossible d'avoir une donnée de type chaîne de caractères dans la mesure où MATLAB essaie d'interpréter cette chaîne de caractères comme une instruction. Si l'on souhaite saisir une réponse de type chaîne de caractères on utilise la syntaxe var = input(' une phrase ','s'). Signalons qu'un retour chariot (sans autre chose) initialise la variable var au tableau vide []. Voici un exemple d'utilisation de la commande input (on suppose que la variable res contient une valeur numérique).
rep = input(' Affichage du resultat ? o/n [o] ','s');
if isempty(rep), rep = 'o'; end
if rep == 'o' | rep == 'y'
disp(['Le resultat vaut ', num2str(res)])
end
La commande sprintf permet l'impression de variables selon un modèle donné. Un modèle d'édition se présente sous la forme du symbole pourcent (%) suivi d'indications permettant de composer le contenu du champ à imprimer, en particulier sa longueur en nombre de caractères. Le modèle d'édition utilisé par MATLAB est le modèle d'édition du langage C. La syntaxe de la commande sprintf est:
sprintf(format, variables)
où
>> sprintf('%s', 'il fera beau a Brest')Modèle d'édition des réels
ans =
il fera beau a Brest
>> temps = 'il fera beau a Brest'; sprintf('%s',temps)
ans =
il fera beau a Brest
>> sprintf('%30s', temps)
ans =
il fera beau a Brest
>> sprintf('%-30s', temps)
ans =
il fera beau a Brest
>> sprintf('meteo : %s', temps)
ans =
meteo : il fera beau a Brest
>>
d | : | pour les entiers |
e | : | pour une notation à virgule flottante où la partie exposant est délimitée par un e minuscule (ex: 3.1415e+00) |
E | : | même notation mais E remplace e (ex: 3.1415E+00) |
f | : | pour une notation à virgule fixe (ex: 3.1415) |
g | : | la notation la plus compacte entre la notation à virgule flottante et la notation à virgule fixe est utilisée |
>> x = pi/3; y = sin(x);Utilisations particulières
>> sprintf('sin(%8.6f) = %4.2f', x,y)
ans =
sin(1.047198) = 0.87
>> sprintf('sin(%8.6f) = %4.2E', x,y)
ans =
exp(1.047198) = 8.66E-01
>>
>> x = [1:10];Il est possible d'utiliser les symboles suivant dans les chaînes de caractères
>> sprintf(' %d ,',x)
ans =
1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ,
>>
\n | : | provoque le passage à une nouvelle ligne |
\t | : | insère une tabulation horizontale |
\b | : | décale l'impression du champ suivant d'un caractère vers la gauche |
\r | : | saut horizontal |
>> z =[]; x = [1:10]; for i=1:length(x), z = [z ,x(i), log(x(i))]; end;Si l'on a besoin d'afficher le caractère % on le doublera %% pour qu'il ne soit pas interprété comme le début d'un format. La commande fprintf est l'analogue de sprintf pour imprimer de variables selon un modèle donné dans un fichier.
>> s = sprintf('%4.1f | %8.6E \n ', z )
ans =
1.0 | 0.000000E+00
2.0 | 6.931472E-01
3.0 | 1.098612E+00
4.0 | 1.386294E+00
5.0 | 1.609438E+00
6.0 | 1.791759E+00
7.0 | 1.945910E+00
8.0 | 2.079442E+00
9.0 | 2.197225E+00
10.0 | 2.302585E+00
>>
Suivant: Programmer sous MATLAB
Précédent:Calculer avec MATLAB
Voir: Table des matière
- Index - Accueil
(c) Stéphane Balac - Centre de Mathématiques - INSA de Lyon