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

3 vues (au cours des 30 derniers jours)
John
John le 15 Avr 2014
Commenté : John le 15 Avr 2014
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?
  1 commentaire
John
John le 15 Avr 2014
please let me know if more clarification is needed! any help is much appreciated

Connectez-vous pour commenter.

Réponse acceptée

Sara
Sara le 15 Avr 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);

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by