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

 Akzeptierte Antwort

Evgeny Pr
Evgeny Pr am 24 Jan. 2013

8 Stimmen

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

Weitere Antworten (3)

Azzi Abdelmalek
Azzi Abdelmalek am 24 Jan. 2013

29 Stimmen

x=953
y=num2str(x)
out=str2num(y(1))

5 Kommentare

Bilal Almulaabd
Bilal Almulaabd am 4 Apr. 2018
Thank you so much.
holyyyy u saved me
Rafael Rodríguez
Rafael Rodríguez am 30 Apr. 2021
thanks!
Siddh
Siddh am 14 Apr. 2025
You are my savior
Monib
Monib am 18 Apr. 2026
Mashkoor!

Melden Sie sich an, um zu kommentieren.

Thorsten
Thorsten am 24 Jan. 2013

1 Stimme

x = 953;
s = num2str(x);
y1 = sscanf(s(1), '%d')
y2 = sscanf(s(2:end), '%d')
Petorr
Petorr am 12 Apr. 2019

1 Stimme

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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by