multiple digit number in to individual digits
97 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Raza
le 22 Juil 2014
Modifié(e) : John D'Errico
le 27 Fév 2023
i want to change the number 1123 in 1 1 2 3, want to split combine number into into individual numbers
0 commentaires
Réponse acceptée
Azzi Abdelmalek
le 22 Juil 2014
a=1234
b=str2double(regexp(num2str(a),'\d','match'))
3 commentaires
Walter Roberson
le 7 Fév 2017
a = '123*+'
for K = 1 : length(a)
fprintf('character #%d of "%s" is "%c"\n', K, a, a(K));
end
Adam Danz
le 29 Avr 2020
For large values such as a=11122333345555566 this will not work since num2str will convert the value to '1.112233334555557e+16'. Otherwise nice solution.
Plus de réponses (3)
John D'Errico
le 22 Juil 2014
N = 1123;
Ndigits = dec2base(N,10) - '0'
Ndigits =
1 1 2 3
3 commentaires
John D'Errico
le 27 Fév 2023
Modifié(e) : John D'Errico
le 27 Fév 2023
Not difficult with a floating point number, but remember that a float is NOT an exact decimal representation of that number. But...
X = 1.2345;
dec2base(X*10000,10)
or
dec2base(X*10000,10) - '0'
You can even fuss around and get the decimal point in there if you want, but if you want that, then sprintf is arguably a better choice.
Jan
le 7 Fév 2017
Modifié(e) : Jan
le 14 Fév 2017
For getting the digits, a conversion to a string is an indirection. Staying at numerical values is usually faster:
N = 1123;
m = floor(log10(N)); % [EDITED] Thanks Stephen
D = mod(floor(N ./ 10 .^ (m:-1:0)), 10);
Ramon Villamangca
le 20 Nov 2018
Modifié(e) : Ramon Villamangca
le 20 Nov 2018
a simple single line solution:
>> num = 12345042117;
>> arrayfun(@(x) mod(floor(num/10^x),10),floor(log10(num)):-1:0)
ans =
1 2 3 4 5 0 4 2 1 1 7
3 commentaires
Ramon Villamangca
le 27 Fév 2023
@Jyahway Dong: If the digits are that long, you'll probably input it as a char string, anyway. That means the solution would even be much simpler:
num = '62229893423380308135336276614282806444486645238749';
num - '0'
Voir également
Catégories
En savoir plus sur Numeric Types dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!