Home > OS >  How to process the data from a table.txt file from a series of folders and save the output in the sa
How to process the data from a table.txt file from a series of folders and save the output in the sa

Time:11-10

Could you please help me to read the data from a table.txt in a series of subfolders from a directory? In all the subfolders, the output to read has the same name, 'table.txt'. I want to process the data and save the output in the same folder.I can process it using the following code.

I can process it using the following code.

   a = readmatrix('table.txt');
   a4 = a(:,4);
   a4 = a4 - mean(a4);
   N = 2^(nextpow2(length(a4)));
   freq = (abs(fftshift(fft(a4,N)))); 

   t=[0:1e-12:20e-9].';
   ts=t(2)-t(1);
   F = ((-N/2:N/2-1)/N)*(1/ts);

   fmr=[(F(N/2 1:end)/1e9)' freq(N/2 1:end)];
   writematrix(fmr, 'fmr.csv');
   cd folder

But how to perform the same action on all the subfolders?
Could somebody please help me out?

CodePudding user response:

You can use the "find files in subfolders" behaviour of dir. Something like this:

allTables = dir('**/table.txt');
for ii = 1:numel(allTables)
    thisFolder = allTables(ii).folder;
    inFile = fullfile(thisFolder, allTables(ii).name);
    a = readmatrix(inFile);    
    % do stuff ...
    fmr = ...
    outFile = fullfile(thisFolder, 'fmr.csv');
    writematrix(fmr, outFile);
end
  • Related