How can I filter multiple files ?

Illustration
Wyatt - 2021-03-09T10:06:17+00:00
Question: How can I filter multiple files ?

I have made a filter as following   [b,a] = butter(9,.02,'low'); x=textread('noisy.out'); y=filter(b,a,x); save filtered.out y -ASCII   I have 1000 files and I would like to filter all my files using the above filter. Is there any way that I can do this efficiently? my files are named like 1.out 2.out , ... 1000.out   any suggestion would be appreciated.   my *.out files just include one column with numbers   this is one example -4.034E+02 -4.007E+02 -3.987E+02 -3.978E+02   All numbers in one column and each file contains 13000 numbers

Expert Answer

Profile picture of Kshitij Singh Kshitij Singh answered . 2025-11-20

Parse the folder for existing 1-1000.out files and import them one-by-one apply filter and save:
 
 
% Retrieve all the files in a directory
names = dir('C:\Users\Oleg\Desktop\Nuova cartella');
names = {names(~[names.isdir]).name};

% Select only the files #.out
idx   = ~cellfun('isempty',regexp(names,'\d+\.out'));
names = names(idx);

% Filter
[b,a] = butter(9,.02,'low'); 
for n = names
  % Open file for reading
  fid = fopen([myDir n{:}],'r');
  x   = textscan(fid,'%f');
  y = filter(b,a,cat(1,x{:}));
  % Discard content and write filtered data
  fid = fopen([myDir n{:}],'w');
  fprintf(fid,'%E\r\n',y);
  fid = fclose(fid);
end


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!