Azzera filtri
Azzera filtri

sprintf extra space character!

3 visualizzazioni (ultimi 30 giorni)
Tala Hed
Tala Hed il 10 Apr 2018
Commentato: Tala Hed il 10 Apr 2018
Experts, I am trying to rename some images with the following code. The new names should be '1.jpg', '2.jpg' etc. However, I get ' 1.jpg', ' 2.jpg' etc. Note there is a space before each digit. What is the issue with my code?
a ='C:\Users\Faraz\Desktop\IBHS\Flame height\Frames\';
A =dir( fullfile(a, '*.jpg') );
fileNames = { A.name };
for iFile = 1 : numel( A )
newName = fullfile(a, sprintf( '%2d.jpg', iFile ) );
movefile( fullfile(a, fileNames{ iFile }), newName );
end

Risposta accettata

Walter Roberson
Walter Roberson il 10 Apr 2018
%2d means that it should always take a minimum of 2 characters for the number. %d would use the minimum length for each number.
If you were looking for 01.jpg, 02.jpg, ... 09.jpg, 10.jpg, etc., then you would use %02d
  5 Commenti
Walter Roberson
Walter Roberson il 10 Apr 2018
a ='C:\Users\Faraz\Desktop\IBHS\Flame height\Frames\';
A = dir( fullfile(a, '*.jpg') );
fileNames = fullfile(a, {A.name} );
for iFile = 1 : length(fileNames)
oldName = fileNames{iFile};
newName = fullfile(a, sprintf( '%d.jpg', iFile ) );
if ~strcmp(oldName, newName)
movefile( oldName, newName );
end
end
Tala Hed
Tala Hed il 10 Apr 2018
Thank you, Walter

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by