Select specific digits of a number

How can I select specific parts of a number?
For example if we have x=953, I want to select specifically the first digit (or the last two) and save it in another variable, so the outcome would be y=9 (or y=53)
Thanks

 Accepted Answer

x = 953
d = 100
r = mod(x, d) % 53
y = (x - r) / d % y = 9

More Answers (3)

x=953
y=num2str(x)
out=str2num(y(1))
x = 953;
s = num2str(x);
y1 = sscanf(s(1), '%d')
y2 = sscanf(s(2:end), '%d')
c = 123.45
c = 123.4500
for d = [0.01 0.1 1 10 100]
round( (mod(c,10*d)-mod(c,d))/d )
end
ans = 5
ans = 4
ans = 3
ans = 2
ans = 1
[round() is needed because of binary precision]

1 Comment

Note that this fails if the original number is negative. You need to work with abs() of the number.
c = -123.45
c = -123.4500
for d = [0.01 0.1 1 10 100]
round( (mod(c,10*d)-mod(c,d))/d )
end
ans = 5
ans = 5
ans = 6
ans = 7
ans = 8

Sign in to comment.

Products

Asked:

on 24 Jan 2013

Commented:

on 18 Apr 2026 at 22:50

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!