Bonjour ,
Existe il une fonction matlab pour convertir une chaine de caractère en valeur numérique exemple convertir abc en numérique
Cordialement
Version imprimable
Bonjour ,
Existe il une fonction matlab pour convertir une chaine de caractère en valeur numérique exemple convertir abc en numérique
Cordialement
Salut!
Tu dois utiliser cette fonction:
Code:
1
2>>doc str2num
Pour convertir une nombre contenu dans une variable de type chaine de caractères, utilise ceci :
et si tu cherche à avoir le code decimale de chaque caractère contenue dans une variable en chaine de caractères :Code:
1
2
3
4
5
6
7 >> x = '125.122' ; >> d = str2double(x) 125.1220
Code:
1
2
3
4
5
6
7
8
9 >> x = 'kmaniche' ; >> code = double(x) code = 107 109 97 110 105 99 104 101
Bonjour,
merci pour vos réponses mais avec le code décimal ou le code ASCII sa donne pas vraiment le résultat voulu :?
Tu veux qu'il affiche le code ASCII de chaque caractere de ton string je suppose.
Donc pour 'abc' le code ASCII de a , b et respectivement c dans une autre variable.
Donc a ton cas tu veux qu'il stoque par example dans la variable resultat les valeurs ASCII de a,b et c qui forment ton string 'abc':
result = 97 98 99 comme ca je suppose que tu veux.
Tu as raison avec les decimales je veux tester pour obtenir corectement ce que tu veux.
J'ai fais comme ca:
Et il n'affiche pas correctement le resultat tu as raison (avec tous les decimales):Code:
1
2
3 >> x = '125.1223332' >> result=str2double(x)
result =
125.1223
Et aussi une autre probleme que tu as dis c'est vrai:
Quand je lis une variable double:
Voila le resultat:Code:
1
2 >> x=125.1223332
x =
125.1223
Bizzare8O Je ne vois pas tous le decimales du numero contenu dans la variable x.
Donc tu veux convertir un string en ASCII je me suis force de comprendre ce que tu veux.
Je te prie quand tu pose une question etre plus explicit a ce que tu dois faire.
Donc pour la conversion d'un string en ascii tu dois utiliser la fonction abs.
Example comme tu veux:
J'espere que ca t'aide!Code:
1
2
3
4
5
6
7
8
9
10
11
12 >> x='abc' x = abc >> resultat= abs(x) resultat = 97 98 99
Bonne chance,
Michel
Pour les decimales ta deuxieme probleme j'ai la suivante idee:
Et maintenant j'observe qu'il reconnait tes 7 decimales parce que j'ai specifique qu'il voit les premieres 10.Code:
1
2
3 >> y='%.10f' %specifier en variable y 10 decimals maximum pour ton numero >> y='125.1223312' %stoquer ton numero en variable y
Voila il obtient:
y =
125.1223312
Obs. tres importante:
Maintenant dans variable y,x etc. tu peux inserer un numero quelconque qui a maximum 10 decimales.
C'etait ca le probleme parce qu'il ne reconnaisait pas les decimales.
Tu dois lui specifier ca :
J'espere que ca t'aide aussi!Code:
1
2 >> y='%.10f' %10 decimales maximum
Bonne chance,
Michel
Pour le nombre de chiffre après la virgule, utilise "format".
Oui kmaniche tu as raison. J'ai oublie la fonction format:
De la documentation:
"FORMAT SHORT E Floating point format with 5 digits.Code:
1
2>>help format
FORMAT LONG E Floating point format with 15 digits for double and
7 digits for single. "
Mais aussi ca marche avec le format '%.7f' le contenu d'une variable.
Si c'est ca, ce que tu cherchais chouki ,tu peux cliquer le boutton resolu.