how to use for loop ?

1 view (last 30 days)
pruth
pruth on 24 Nov 2017
Answered: pruth on 26 Nov 2017
one of my friend help me to write this code to read one text file which works perfect. but now I want to use this code to process multiple text files from one same folder. I am attaching 3 files for example. I am not able to use perfect loop for all these files.
content = fileread( 'L3_tropo_ozone_column_apr14.txt' ) ;
filename = char('L3_tropo_ozone_column_apr14.txt')
% - Remove first space on all data rows.
content = regexprep( content, '(?<=[\r\n]) ', '' ) ;
% - Split by "lat = ..." separator.
blocks = regexp( content, '\s+lat[^\r\n]+', 'split' ) ;
% - Extract header from block 1.
pos = regexp( blocks{1}, '\)\s+\d', 'start' ) ;
header = blocks{1}(1:pos) ;
blocks{1} = blocks{1}(pos+1:end) ;
% - Merge blocks, remove \r\n, replace spaces by 0s.
blocks = [blocks{:}] ;
blocks = regexprep( blocks, '[\r\n]', '' ) ;
blocks(blocks == ' ') = '0' ;
% - Convert to 120x288 numeric array.
data = reshape( sscanf( blocks, '%3d' ), 288, 120 ).' ;

Accepted Answer

pruth
pruth on 26 Nov 2017
finally I somehow I did
O3_data_folder = 'C:\Users\Myself\Dropbox\prithvi_project\o-3';
cd(O3_data_folder);
%%open files in the data folder
temp = dir();
O3filenames = [];
%%%for the program to not read .files
flag_1 = 0 ;
for i = 1:numel(temp);
if (strncmp(temp(i).name, '.', 1) == 1);
flag_1 = flag_1 +1 ;
else
O3filenames{i-flag_1} = temp(i).name ;
end
end
for file = 1:size(O3filenames,2);
fname = char(O3filenames(file));
fid= fopen(fname(file)); % creating file id
content = fileread(fname) ;
% - Remove first space on all data rows.
content = regexprep( content, '(?<=[\r\n]) ', '' ) ;
% - Split by "lat = ..." separator.
blocks = regexp( content, '\s+lat[^\r\n]+', 'split' ) ;
% - Extract header from block 1.
.
.
.end

More Answers (1)

KSSV
KSSV on 24 Nov 2017

Community Treasure Hunt

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

Start Hunting!

Translated by