sprintf extra space character!
조회 수: 3 (최근 30일)
이전 댓글 표시
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
댓글 수: 0
채택된 답변
Walter Roberson
2018년 4월 10일
%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
Walter Roberson
2018년 4월 10일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Whos에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!