load text file
    4 views (last 30 days)
  
       Show older comments
    
I have a text file that is too large to load with the file=load'file.txt' command. it's basically many rows of numbers where each column separated by a space.
1 2 3 1 4 2 1 56 2....
1 4 1 56 2 3 4 2 3 ....
....
Each row contains data from several channels. So for instance data from channel 1 would be 1 2 3 1 4 1, first 3 numbers of every line:
What I'd like to do is to filter and downsample data from each channel.
so basically I'm wondering what command is best to use to pick out specific parts of text file without using "load"
1 Comment
Accepted Answer
  Walter Roberson
      
      
 on 3 Nov 2011
        samplesperchan = 3;
channelnum = 6;  %for example
lineformat = [repmat('%*f', 1, samplesperchan*(channelnum-1)), repmat('%f',1,samplesperchan), '%*[^\n]'];
result = textscan(fid, lineformat, 'CollectOutput', 1);
8 Comments
  Walter Roberson
      
      
 on 4 Nov 2011
				It sounds as if you might need to use 'bufsize' with a large number -- as large as your longest line.
More Answers (1)
  Ora Zyto
    
 on 3 Nov 2011
        Depending on the format of your data, TEXTSCAN may be a good option. This is a very flexible function, where you can specify the format of your data programatically.
You could read lines one by one and parse the data directly. If your data is rectangular, you could also try reading it all at once.
Ora
See Also
Categories
				Find more on Standard File Formats 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!


