read data line by line from a .dat file after pressing a certain keyboard key

4 views (last 30 days)
Mohamed Ali
Mohamed Ali on 21 Oct 2017
Commented: Walter Roberson on 21 Oct 2017
Hello, i'm new to Matlab and need to create a function which read data line by line from a .dat file after pressing a certain keyboard key and then save them to multiple outputs, the same idea as scanf in C or textread in Matlab ([A,B,C,...] = textread(filename,format))
my data looks like:
  • 7 1099 236 260 236 260 0
  • 2 1078 236 300 236 300 0
  • 3 1829 236 100 236 100 0
  • 4 1367 206 500 206 500 0
  • 1 1123 246 170 246 170 0

Answers (1)

Gareth Thomas
Gareth Thomas on 21 Oct 2017
  4 Comments
Walter Roberson
Walter Roberson on 21 Oct 2017
textlines = regexp( fileread(filename), '\r?\n', 'split');
if isempty(textlines{end}); textlines{end} = []; end %file might or might not have ended in newline
YourResults = cellfun(@(onetextline) YourTextFunction(onetextline), lines, 'Uniform', 0);
Or, better:
num_cols = 7;
fmt = repmat('%f', 1, num_cols);
fid = fopen(filename, 'r');
YourInputCell = textscan(fid, fmt, 'CollectOutput', 1);
fclose(fid);
YourInputNumeric = YourInputCell{1};
YourResults = arrayfun(@(RowIdx) YourNumericFunction( YourInputNumeric(RowIdx,:) ), (1:size(YourInputNumeric,1)).', 'Uniform', 0 );

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!