Bonjour,
J'aimemrai savoir s'il est possible d'avoir en sorti d'un str2num un chiffre sous notation scientifique?
par exemple, avec str2num('10000000') avoir : 1.0000E+007
Merci
Bonjour,
J'aimemrai savoir s'il est possible d'avoir en sorti d'un str2num un chiffre sous notation scientifique?
par exemple, avec str2num('10000000') avoir : 1.0000E+007
Merci
Quel serait l'intérêt ?
STR2NUM renvoie une valeur numérique. Rien à voir avec l'affichage de cette valeur...
Bonjour,
Ce serai plutôt sur sa fonction inverse num2str que cela serait possible
Code : Sélectionner tout - Visualiser dans une fenêtre à part num2str(1000000, '%10.4e')
Sinon ce serait plutôt un problème d'affichage, et dans ce cas:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 format short eng % Ou format long eng
Dernière modification par Invité ; 05/04/2011 à 15h08.
Si c'est pour ensuite l'afficher dans une fenêtre à part.
Merci c'est ce que je vais utiliser pour continuer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Ce serai plutôt sur sa fonction inverse num2str que cela serai possible num2str(1000000, '%10.4e')
Ne peut on pas ensuite choisir le nombre de chiffre à afficher derrière le "e"?
Il y a par défaut 3 chiffres ne peut ont pas avoir seulement : 1.0000E+7
Une idée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 x = 10000000; p = floor(log10(abs(x))); fprintf('%1.4fE%+d\n',x*10^-p,p)
En faite j'insère plutôt mon résultat dans un uicontrol via l'intermédiaire d'un set :
Code : Sélectionner tout - Visualiser dans une fenêtre à part set(ChampsSaisie(i), 'string', num2str(N, '%10.4e'));
Code : Sélectionner tout - Visualiser dans une fenêtre à part set(ChampsSaisie(i), 'string', sprintf('%1.4fE%+d\n',N*10^-floor(log10(abs(N))),floor(log10(abs(N)))));
Ou tu crée une fonction avec le code donné dans mon précédent message.
Merci Dut, j'ai essayé les 2 codes que tu m'as proposé mais j'ai un warning que je ne comprends pas entiérement qui s'affiche sur la console :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Warning: Single line Edit Controls can not have multi-line text
J'ai simplement modifié mon code comme cela :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 p = floor(log10(abs(N))); Res = sprintf('%1.4fE%+d\n',N*10^-p,p); set(ChampsSaisie(i), 'string', Res);
Il faut enlever le \n dans le SPRINTF :
Code : Sélectionner tout - Visualiser dans une fenêtre à part set(ChampsSaisie(i), 'string', sprintf('%1.4fE%+d',N*10^-floor(log10(abs(N))),floor(log10(abs(N)))));
Merci Dut sa marche parfaitement!
Partager