簡體   English   中英

重命名文件序列Matlab

[英]Rename a file sequence Matlab

我想請教您有關在目錄中重命名圖像文件列表,然后將其他一些圖像文件放在該目錄中的幫助。 例如,我有目錄Dir1,其中有一個圖像列表,如下所示:

Dir1 = [Image-001.jpg, Image-002.jpg, Image-003.jpg,...
        Image-004.jpg, Image-005.jpg, Image-006.jpg,...
        Image-007.jpg, Image-008.jpg, Image-009.jpg,...
        Image-010.jpg, Image-011.jpg, Image-012.jpg];

我將圖像列表分為兩個子目錄Dir2和Dir3。 Dir3包含Dir1的每3張圖像; Dir2包含其余圖像。

Dir2 = [Image-001.jpg, Image-002.jpg, Image-004.jpg,...
        Image-005.jpg, Image-007.jpg, Image-008.jpg,...
        Image-010.jpg, Image-011.jpg];

Dir3 = [Image-003.jpg, Image-006.jpg, Image-009.jpg, Image-012.jpg];

現在,在對Dir2和Dir3的圖像進行一些處理之后,Dir2和Dir3的文件名變為:

Dir2 = [Image-001.jpg, Image-002.jpg, Image-003.jpg,...
        Image-004.jpg, Image-005.jpg, Image-006.jpg,...
        Image-007.jpg, Image-008.jpg];

Dir3 = [Image-001.jpg, Image-002.jpg, Image-003.jpg,...
        Image-004.jpg];

誰能告訴我如何合並Dir2和Dir3的文件並回到Dir1的文件名模式? 也就是說,我必須將Dir3的Image-001.jpg重命名為Image-003.jpg,並將其放在Image-003.jpg所在的Dir2的第3個位置上; 和Image-003.jpg以及Dir2中的其余圖像將相應重命名。 用於Dir3的Image-002也會發生相同的情況,依此類推。

請問我是否無法清楚說明問題。 任何幫助將非常感激。 Matlab或C ++中的任何示例代碼都會有很大的幫助。

您應該使用movefilecopyfile來完成這項工作。

例如,在Dir3上,您可以

for ii=1:4,
    dir3filename = fullfile( 'Dir3', sprintf('Image-%03d.jpg', ii ) );
    dir1filename = fullfile( 'Dir1', sprintf('Image-%03d.jpg', 3*ii) ); % new name
    copyfile( dir3filename, dir1filename );
end

請注意, dir3filenamedir1filename是相對路徑,僅當相對路徑相對於當前工作目錄正確時,該代碼才有效。 您可以更改代碼以使用絕對路徑。

您可能還需要查看fullfile字符串格式

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM