Read file whose name has a pattern that is part of another file name pattern

3 visualizaciones (últimos 30 días)
I have files with two patterns in their names: "...daily.nc" and "...4xdaily.nc".
Currently I'm using:
filePattern = fullfile(Exp_Path,strcat('*',Sampling_Rate,'.nc'));
ncFiles = dir(filePattern);
with Sampling_Rate being a string (either 'daily' or '4xdaily'), and with Exp_Path being the directory containing the relevant files.
For the "4xdaily" pattern, this works properly, giving me a structure with all the requested files and only them.
When I try to apply this to the the "daily" pattern, I get a structure with both kinds of files (which makes sence, as the string 'daily' is included in the larger string '4xdaily').
Is there a way to obtain only the "daily" files?

Respuesta aceptada

Ive J
Ive J el 14 de En. de 2022
Editada: Ive J el 14 de En. de 2022
Try this
files = {dir("*daily.nc").name}.'
{'data1.4xdaily.nc'}
{'data12.daily.nc' }
{'data2.4xdaily.nc'}
{'data3.daily.nc' }
xdailyIdx = endsWith(files, '4xdaily.nc');
xdailyf = files(xdailyIdx)
{'data1.4xdaily.nc'}
{'data2.4xdaily.nc'}
dailyf = files(~xdailyIdx)
{'data12.daily.nc'}
{'data3.daily.nc' }
  2 comentarios
Meir Zeilig Hess
Meir Zeilig Hess el 14 de En. de 2022
After a small modification, it worked!
I only needed to replace the first line of your answer with:
files = {dir(filePattern).name}; % No need for transposition, but the full path was required
Then, using the index array "xdailyIdx", it was easy to manipulate not only the array of file names, "files", but also the whole structure "ncFiles".
Thank you very much!
Ive J
Ive J el 14 de En. de 2022
You are right, that's just old habits, I hate row vectors ;)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Get Started with MATLAB en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by