file name manipulation
38 views (last 30 days)
Show older comments
I have a file name that takes the form: S_1_X_Y where X can be an integer between 1-16, and Y is a letter a,b,c,d.
I want to be able to just replace the number X by a user defined value.
any help greatly appreciated. Thanks
Accepted Answer
Oleg Komarov
on 6 May 2011
X = 1;
Y = 'a';
sprintf('S_1_%d_%s',X,Y)
EDIT
str = 'S_1_6_a'
x = 3;
regexprep(str,'(_)\d+(_[abcd])', ['$1' sprintf('%d',x) '$2'])
ans =
S_1_3_a
4 Comments
More Answers (1)
Teja Muppirala
on 6 May 2011
NUM2STR is useful for stuff like this.
Y = {'a' 'b' 'c' 'd'}
for jj = 1:4
for n = 1:9
filename = ['S_1_' num2str(n) '_' Y{jj}]
end
end
Or alternatively, if you need to have zeros in there like '001', '002', '003' then you can use SPRINTF instead of NUM2STR
n = 7;
filename = ['S_1_' sprintf('%03.f',n) '_a']
n = 61;
filename = ['S_1_' sprintf('%03.f',n) '_a']
3 Comments
See Also
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!