multiple digit number in to individual digits
22 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Raza
am 22 Jul. 2014
Bearbeitet: John D'Errico
am 27 Feb. 2023
i want to change the number 1123 in 1 1 2 3, want to split combine number into into individual numbers
0 Kommentare
Akzeptierte Antwort
Azzi Abdelmalek
am 22 Jul. 2014
a=1234
b=str2double(regexp(num2str(a),'\d','match'))
3 Kommentare
Walter Roberson
am 7 Feb. 2017
a = '123*+'
for K = 1 : length(a)
fprintf('character #%d of "%s" is "%c"\n', K, a, a(K));
end
Adam Danz
am 29 Apr. 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.
Weitere Antworten (3)
John D'Errico
am 22 Jul. 2014
N = 1123;
Ndigits = dec2base(N,10) - '0'
Ndigits =
1 1 2 3
3 Kommentare
John D'Errico
am 27 Feb. 2023
Bearbeitet: John D'Errico
am 27 Feb. 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
am 7 Feb. 2017
Bearbeitet: Jan
am 14 Feb. 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
am 20 Nov. 2018
Bearbeitet: Ramon Villamangca
am 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 Kommentare
Ramon Villamangca
am 27 Feb. 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'
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!