how to extract data from an text file?
    11 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
    isamh
 il 3 Feb 2020
  
    
    
    
    
    Commentato: Walter Roberson
      
      
 il 14 Feb 2020
            I have two files, one in excel and one in a text file, how would i obtain column data from the text file even though i did it from an excel file.
code  is:
filename = 'mct.xlsx'
data = xlsread(filename, 'mct', 'A:D');
Phase1 = data(data(:4)==1,:);
how would i be able to extract this from a text file?
0 Commenti
Risposta accettata
  fred  ssemwogerere
      
 il 3 Feb 2020
        Hello, there are a number of ways to go about this. Please refer to the following links:
1 Commento
Più risposte (3)
  fred  ssemwogerere
      
 il 4 Feb 2020
        % what does the 'w' mean? 
'w' gives write access permission to the file
% also, what does ''%4.4f\n'' mean?
This is a formatting operator that prints each input as a fixed point number having field width of 4, and the number of digits after the decimal point of 4, before proceeding to a new line ("\n").
8 Commenti
  Walter Roberson
      
      
 il 5 Feb 2020
				Sometimes you can use textscan CommentStyle to ignore headers if they always have the same start and stop. Otherwise sometimes you end up looping textscan, especially if you want the blocks to be separated in output.
Another method that can be very useful is to fileread() the entire file as a character vector, and then use a combination of regexp and regexprep to extract parts of it, possibly then passing the resulting characters into textscan.
  isamh
 il 12 Feb 2020
        
      Modificato: isamh
 il 12 Feb 2020
  
      
      3 Commenti
  Walter Roberson
      
      
 il 14 Feb 2020
				result = [];
fid=fopen('MCT_Data.txt');
tic
while 1
    tline = fgetl(fid);
    if ~ischar(tline); break; end                     %end of file
    if isempty(tline); continue; end                  %empty line
    celldata = textscan(tline,'%f %f %f %f %f %f');
    matdata = cell2mat(celldata);
    % match fails for text lines, textscan returns empty cells
    result = [result ; matdata];
end
toc
fclose(fid);
What is your file format? It appears that you have text at the beginning of some of the lines, and you are doing this looping so that you can ignore those lines? There are usually easier ways to deal with such files.
Vedere anche
Categorie
				Scopri di più su Text Files in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!