sprintf problems
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello i have a file path which is this '\\psf\Home\Documents\MATLAB\silhouettes\1\00_1' This points to a set of images that i need to add to matlab which works fine. what i need to happen is that when this code is run it changes the one to a two so it would look like this '\\psf\Home\Documents\MATLAB\silhouettes\2\00_1' and then change to three and four etc, i have been told i can use sprintf to do this but cannot see a way to make it work, i don't suppose any out there has any sprintf knowledge who could help me out?
thanks Rob
0 comentarios
Respuesta aceptada
Matt Fig
el 26 de Feb. de 2011
I assume you are using the string in a loop. If not, adjust accordingly.
for ii = 1:5
S = sprintf('\\\\psf\\Home\\Documents\\MATLAB\\silhouettes\\%i\\00_1\n',ii)
end
.
.
.
.
In reply to your email:
The SPRINTF function creates a formatted string. the %i is the format specifier which tells SPRINTF to turn the argument (ii) into an integer. Also notice that you had to have two backslashes everywhere you wanted a single backslash printed. The backslash is the escape character, so SPRINTF doesn't print what is after it (like the \n at the end). I recommend reading the doc on this function, because it comes up all the time!
4 comentarios
Matt Fig
el 27 de Feb. de 2011
You will want to use the CD function on your paths generated above, and also to get back. Just make sure to save the main path first, something like:
P = pwd;
for ii = 1:?
% Create S as above.
cd(S)
% call function, create variables, whatever
cd(P)
% Store variables in database, whatever
end
Más respuestas (1)
Walter Roberson
el 26 de Feb. de 2011
Adjusting Matt's answer slightly to make it more intuitive to program:
for ii = 1:5
S = sprintf('%s%d%s, '\\psf\Home\Documents\MATLAB\silhouettes\', ii, '\00_1')
end
4 comentarios
Matt Fig
el 26 de Feb. de 2011
Speaking of which... It is funny Walter, I learned from you (NG posts) to inline my strings to SPRINTF, rather than passing multiple arguments and one formatter string at the beginning (how I always used to do it)!
Walter Roberson
el 27 de Feb. de 2011
Yeah, but I don't program on Windows with all those \ characters in pathnames. When I start getting strings with numerous \ then I switch styles.
Well, actually if I were programming it myself, I would code inline but use / instead of \\ since Windows will accept / in place of \ .
Ver también
Categorías
Más información sobre Characters and Strings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!