How to extract digits

29 vues (au cours des 30 derniers jours)
LC
LC le 23 Mar 2022
Commenté : LC le 26 Mar 2022
Hello everybody. I would like to know how to extract the first digit of each element of a vector.
Example
a = [438;259;21;4;79876]
out = [4;2;2;4;7]
At the same time I would like to know if there is a way to extract the first two digits of each element:
a = [438;259;21;44;79876]
out = [43;25;21;44;79]
tnxxx

Réponse acceptée

Voss
Voss le 23 Mar 2022
Assuming they're all positive numbers, you can try this (the 2-digit result won't be accurate for one-digit numbers):
a = [438;259;21;44;79876];
power10 = 10.^floor(log10(a));
first_digit = floor(a./power10)
first_digit = 5×1
4 2 2 4 7
first_two_digits = floor(a./power10*10)
first_two_digits = 5×1
43 25 21 44 79
  6 commentaires
Stephen23
Stephen23 le 25 Mar 2022
ST = '51 51 50 49 49';
DD = regexp(ST,'\d\d','match')
DD = 1×5 cell array
{'51'} {'51'} {'50'} {'49'} {'49'}
LC
LC le 26 Mar 2022
thank you very much for your support, it works great because I never have a one-digit number.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical 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!

Translated by