How do I increment a 4-digit number in a character array?

2 vues (au cours des 30 derniers jours)
Brad
Brad le 22 Fév 2017
I've got a 1x4 character array containing a 4-digit number.
IRN = '0050';
I'm looking for a way to increment this number in a for loop. For example, with 3 iterations the output of the for loop would be as follows;
MRN =
0051
0052
0053
Can MATLAB increment numbers, within a character array, in a for loop?

Réponse acceptée

Star Strider
Star Strider le 22 Fév 2017
I’m not quite sure what you want.
One approach:
IRN = '0050';
IRN0 = IRN;
for k1 = 1:3
IRN = sprintf('%04d', str2num(IRN0)+k1)
end
  2 commentaires
Stephen23
Stephen23 le 22 Fév 2017
Modifié(e) : Stephen23 le 22 Fév 2017
str2double would be faster and more robust then str2num. sscanf would be best:
IRN = '0098'
for k = 1:5
IRN = sprintf('%04d',1+sscanf(IRN,'%d'))
end
Star Strider
Star Strider le 22 Fév 2017
Good points!

Connectez-vous pour commenter.

Plus de réponses (1)

Walter Roberson
Walter Roberson le 23 Fév 2017
IRN = '0098';
L = length(IRN);
for k = 1 : 5
for J = L : -1 : 1;
if IRN(J) == '9'
IRN(J) = '0';
else
IRN(J) = IRN(J)+1;
break;
end
end
disp(IRN)
end

Catégories

En savoir plus sur Networks dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by