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

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?

 採用された回答

Star Strider
Star Strider 2017 年 2 月 22 日

1 投票

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 件のコメント

Stephen23
Stephen23 2017 年 2 月 22 日
編集済み: Stephen23 2017 年 2 月 22 日
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 2017 年 2 月 22 日
Good points!

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2017 年 2 月 23 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeMATLAB についてさらに検索

製品

質問済み:

2017 年 2 月 22 日

回答済み:

2017 年 2 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by