How to generate sequenced file names with file extensions?

1 ビュー (過去 30 日間)
Gregory Vigil
Gregory Vigil 2018 年 8 月 1 日
編集済み: dpb 2018 年 8 月 1 日
What's the best way to generate sequenced file names with file extensions. The format I'm looking for is something along the lines of 'pcimage' + '0001' + '.h5', so the resulting names would be 'pcimage001.h5', 'pcimage002.h5', ..., 'pcimage2401.h5', ... etc. I was trying the following code, but because the leading 0s would change between 9 and 10 it throws an error. I could see doing it with an if statement that determines the number of digits of i, but i'd prefer a more elegant solution if one exists. Thanks for any help!
for i = 1:1:10 filename(i,:) = strcat('pcimage00', num2str(i), '.h5') end

採用された回答

Greg
Greg 2018 年 8 月 1 日
編集済み: Greg 2018 年 8 月 1 日
See the documentation for num2str to find the formatSpec input option. Then, your code simply becomes:
for i = 1:1:10
filename(i,:) = strcat('pcimage', num2str(i,'%04d'), '.h5');
end
In R2016b and later, this can be done without the loop:
filenames = compose('pcimage%04d.h5',1:5)'; % for cellstr output
filenames = compose("pcimage%04d.h5",1:5)'; % for string output

その他の回答 (1 件)

dpb
dpb 2018 年 8 月 1 日
編集済み: dpb 2018 年 8 月 1 日
On the same line...
>> ext='.jpg';
>> fn=num2str([1:4].',['pcimage%04d' ext])
fn =
4×15 char array
'pcimage0001.jpg'
'pcimage0002.jpg'
'pcimage0003.jpg'
'pcimage0004.jpg'
>>

Community Treasure Hunt

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

Start Hunting!

Translated by