How can I read in the integer data from an alphanumeric formatted text file?

1 view (last 30 days)
I have a text file in the following format:
615835520110131262000000 000000 000000 000000 000000 000000 000000 000000 000000
615835520110726262000000 000000 000000 000000 000000 000000 000000 000000 000000
615835520110727262-99999M-99999M-99999M-99999M-99999M-99999M-99999M-99999M-99999M
615835520110201262000000 000000 000000 000000 000000 000000 000000 000000 000000
615835520110202262000000 000014 000011 000007 000009 000008 000019 000007 000000
615835520110203262000000 000000 000000 000000 000000 000000 000000 000000 000000
615835520110204262000000 000000 000000 000000 000000 000000 000000 000000 000000
I wish to convert it into an n x n vector (e.g. A), in the format above, however, the first column should not contain 61583552011XXX262. Also, for the the -99999 values, no M should be present, yet it sperates the vales. Any suggestions?

Accepted Answer

Sara
Sara on 15 Apr 2014
fid = fopen('myfile.txt','r');
n = 18; % characters that you want to eliminate 61583552011XXX262
nrow = 100; % number of rows in the file or a number larger that the expected # of lines
ncol = 9; % I assume you know how many data you have
A = zeros(nrow,ncol);
for i = 1:nrow
t = fgetl(fid);
if(~ischar(t)),break,end %end of file
t = t(n+1:end); %only the part that you want
% Remove the M
k = strfind(t,'M');
t(k) = blanks(1);
A(i,:) = str2num(t);
end
A = A(1:i,:);
fclose(fid);

More Answers (0)

Categories

Find more on Convert Image Type in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!