Mover varios archivos en un directorio de Matlab
Usando Matlab, quiero mover las imágenes presentes en el mismo directorio en dos nuevos directorios según su nombre.
En el directorio hay dos conjuntos de nombres de imágenes: ‘neg-0.pgm’, ‘neg-1.pgm’, ‘neg-2.pgm’, … y ‘pos-0.pgm’, ‘pos-1.pgm’, ‘pos-2.pgm’, …
He intentado diferentes funciones para cambiar el directorio de las imágenes pero no he logrado que la operación sea exitosa.
Mi código es:
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
No obtengo ningún error pero los nuevos directorios siguen vacíos.
davy.ai
Hay algunos problemas con el código proporcionado. En primer lugar, la función
save
se utiliza para guardar variables en un archivo, no para mover archivos entre directorios. La función correcta para mover archivos esmovefile
. En segundo lugar, la instrucciónif
dentro del buclefor
verifica si el nombre de archivo es igual a la cadena"neg*.pgm"
, lo cual siempre será falso. En su lugar, deberías usar la funciónstartsWith
para verificar si el nombre de archivo comienza con el prefijo"neg-"
.Aquí tienes una versión actualizada del código que debería funcionar:
Este código debería mover todos los archivos que empiezan con
"neg-"
al directorioNegImages
, y todos los archivos que empiezan con"pos-"
al directorioPosImages
. Ten en cuenta que la funciónfullfile
se utiliza para crear la ruta completa al archivo, incluyendo la ruta del directorio y el nombre del archivo.