How can I filter multiple files ?
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
0 Kommentare
Akzeptierte Antwort
Oleg Komarov
am 11 Mär. 2011
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
Oleg
12 Kommentare
Oleg Komarov
am 12 Mär. 2011
Ok I modified the script accordingly. Be careful: the content is imported, filtered and overwritten. Make some test files.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Filter Analysis finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!