Clear Filters
Clear Filters

Introducing element * in sprintf()

1 view (last 30 days)
Dimitris M
Dimitris M on 19 Jul 2012
Hello
I am trying to introduce the element * to the function sprintf in MATLAB.
My code look like this
ss=sprintf('%s//Segments//Image_TrueColor_%d',Pathname,*)
I could set the code to read in the names of the files at the point of the unknow number name but is it possible just to introduce the * (select all) command ?
Thank you in advance

Answers (1)

Walter Roberson
Walter Roberson on 19 Jul 2012
That is not really a question about sprintf(), that is a question about the routine that you are using the resulting string. sprintf() just does string creation based upon the parameters passed to it, and it has no knowledge of files.
prefix = fullfile(Pathname, 'Segments');
fileinfo = fullfile( prefix, 'Image_TrueColor_*' );
filenames = strcat( prefix, {fileinfo.name} );
The result would be cell array of strings, one (complete) file name per entry.
For most operations you would then need to loop over those file names. Very few of the routines can operate on multiple files at the same time.
  2 Comments
Dimitris M
Dimitris M on 19 Jul 2012
Hello
Thank you for your guidance but maybe my question was not very clear. The '*' is supposed to be a number that I do not know.
Your code works fine up to the point of
fileinfo = fullfile( prefix, 'Image_TrueColor_*' );
The things is that is should read something like
'Image_TrueColor_10' but it reads 'Image_TrueColor_*' which does not exist.
MATLAB returns
Attempt to reference field of non-structure array.
Can you guide me from this point ?
Thank you in advance !
Walter Roberson
Walter Roberson on 19 Jul 2012
Sorry, should have been
fileinfo = dir( fullfile( prefix, 'Image_TrueColor_*' ) );

Sign in to comment.

Categories

Find more on File Name Construction 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!