Good way to import data file
    9 views (last 30 days)
  
       Show older comments
    
    Kieran Hazell
 on 5 May 2015
  
    
    
    
    
    Edited: Kieran Hazell
 on 6 May 2015
            Hey, I need to import a large data file into matlab, but I'm unsure of the best way to do it. I've been experimenting with the fopen and textscan but can't get anything to work correctly. Any help is appreciated.
0 Comments
Accepted Answer
  Michael Haderlein
      
 on 5 May 2015
        
      Edited: Michael Haderlein
      
 on 5 May 2015
  
      If the format doesn't change through the file (such that after 10 s, suddenly also data about whatever appears), you can simply use:
fid=fopen('test.txt');
data=textscan(fid,'%*s%f','delimiter',':');
fclose(fid);
t=data{1}(1:4:end);
gs=data{1}(2:4:end);
gflat=data{1}(4:4:end);
gflong=data{1}(3:4:end);
0 Comments
More Answers (1)
  David Sanchez
      
 on 5 May 2015
        I'm sure this might be shorter, but I guess it'll be a valid solution for you:
fid = fopen('your_file_name_here.txt');
my_file = textscan(fid, '%s', 'delimiter', '\n');
my_file = my_file{1};
fclose(fid)
% now you have a cell array (my_file) with each line of your *.txt in a different
% cell
% you can extract the values like this:
L = length(my_file); % number of lines in your file
my_data = zeros(L,1);  % initialization of matrix to hold your data
for k = 1:L  % loop along each line
    str_value = textscan(my_file{k}, '%s %s', 'delimiter', ':' );
    my_data(k) = str2double(cell2mat(str_value{1,2}));
end
I guess you can figure out how to assign every four values to each variable
0 Comments
See Also
Categories
				Find more on Cell Arrays 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!

