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

2 Ansichten (letzte 30 Tage)
Brad
Brad am 22 Feb. 2017
Beantwortet: Walter Roberson am 23 Feb. 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?

Akzeptierte Antwort

Star Strider
Star Strider am 22 Feb. 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 Kommentare
Stephen23
Stephen23 am 22 Feb. 2017
Bearbeitet: Stephen23 am 22 Feb. 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 23 Feb. 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

Kategorien

Mehr zu Networks finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by