Matlab在一个目录中移动多个文件



使用Matlab,我想根据图像的名称将同一目录中的图像移动到两个新目录中。

目录中有两组映像"名称:"neg-0.pgm","neg-1.pgm"、"neg-2.pgm"…和"pos-0.pgm","pos-1.pgm"、"pos-2.pgm"…

我尝试了不同的功能来更改映像目录,但未能成功完成操作。

我的代码是:

if not(exist('./CarDataset/TrainImages/PosImages', 'dir'))
mkdir ./CarDataset/TrainImages PosImages
end
if not(exist('./CarDataset/TrainImages/NegImages', 'dir'))
mkdir ./CarDataset/TrainImages NegImages
end
trainIm = dir('./CarDataset/TrainImages/*.pgm');
for i = 1:size(trainIm, 1)
if(strcmp(trainIm(i).name, 'neg*.pgm'))
save(fullfile('./CarDataset/TrainImages/NegImages', ['neg-' num2str(i) '.pgm']))
end
end

我没有收到任何错误,但新目录仍然是空的。

我认为存在两个问题:

1-在if语句中使用带有通配符(*(的strcmp可能无法正常工作

2-使用movefile而不是save。https://www.mathworks.com/help/matlab/ref/movefile.html

请参阅以下代码(在创建新目录后使用(:

origDir = './CarDataset/TrainImages/';
trainIm = dir([origDir '*.pgm']);

for i = 1:size(trainIm, 1)
origFile = trainIm(i).name;
if contains(trainIm(i).name, 'neg'))
newDir = './CarDataset/TrainImages/NegImages/';
else
newDir = './CarDataset/TrainImages/PosImages/';
end
movefile([origDir trainIm(i).name], newDir);
end

相关内容

  • 没有找到相关文章

最新更新