How to get the last two digits of a number?
古いコメントを表示
Hello,
I have a table with 505 rows and 1 column. Each row contains a 4 digit number and from of these numbers I would like to extract the last two digits to add a second column to that table containing the last two digits of every number in the first column.
I would be grateful for any hints. Thank you
採用された回答
その他の回答 (1 件)
DGM
2021 年 5 月 10 日
Assuming they're integers:
% 10 rows random integers
n = (randi(8999,1,10)+1000)'
n = [n mod(n,100)]
If they aren't integers, you should decide how you want to round them first.
3 件のコメント
Maximilian Lingel
2021 年 5 月 10 日
Adam Danz
2021 年 5 月 10 日
+1 I would have gone with mod, too.
Either of the two existing solutions will work with 4-digit integers but note that if the 3rd digit is a 0 as in 4206, the extraction will be 6 and not 06 since matlab does not preserve the 0 place holder. If you want to retain the 0, you'll need to extract the digis as strings or character vectors.
Method 1: convert to string after extraction
rng(123) % for reprodicibility
x = round(rand(10,1)*10000);
lastTwo = mod(x,100);
charVec = compose('%02d',lastTwo); % for char-vectors
str = string(compose('%02d',mod(x,100))); % for string array
T = table(x, lastTwo, charVec, str)
Method 2: convert to string and then extract
rng(123) % for reprodicibility
x = round(rand(10,1)*10000);
xstr = string(x);
str = extractAfter(xstr,2);
T = table(x, lastTwo, str)
カテゴリ
ヘルプ センター および File Exchange で Loops and Conditional Statements についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
