| OLD | NEW |
| (Empty) |
| 1 function parsed = parseLog(filename) | |
| 2 % | |
| 3 % parsed = parseLog(filename) | |
| 4 % Parses a DataLog text file, with the filename specified in the string | |
| 5 % filename, into a struct with each column name as a field, and with the | |
| 6 % column data stored as a vector in that field. | |
| 7 % | |
| 8 % Arguments | |
| 9 % | |
| 10 % filename: A string with the name of the file to parse. | |
| 11 % | |
| 12 % Return value | |
| 13 % | |
| 14 % parsed: A struct containing each column parsed from the input file | |
| 15 % as a field and with the column data stored as a vector in that | |
| 16 % field. | |
| 17 % | |
| 18 | |
| 19 % Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. | |
| 20 % | |
| 21 % Use of this source code is governed by a BSD-style license | |
| 22 % that can be found in the LICENSE file in the root of the source | |
| 23 % tree. An additional intellectual property rights grant can be found | |
| 24 % in the file PATENTS. All contributing project authors may | |
| 25 % be found in the AUTHORS file in the root of the source tree. | |
| 26 | |
| 27 table = importdata(filename, ',', 1); | |
| 28 if ~isstruct(table) | |
| 29 error('Malformed file, possibly empty or lacking data entries') | |
| 30 end | |
| 31 | |
| 32 colheaders = table.textdata; | |
| 33 if length(colheaders) == 1 | |
| 34 colheaders = regexp(table.textdata{1}, ',', 'split'); | |
| 35 end | |
| 36 | |
| 37 parsed = struct; | |
| 38 i = 1; | |
| 39 while i <= length(colheaders) | |
| 40 % Checking for a multi-value column. | |
| 41 m = regexp(colheaders{i}, '([\w\t]+)\[(\d+)\]', 'tokens'); | |
| 42 if ~isempty(m) | |
| 43 % Parse a multi-value column | |
| 44 n = str2double(m{1}{2}) - 1; | |
| 45 parsed.(strrep(m{1}{1}, ' ', '_')) = table.data(:, i:i+n); | |
| 46 i = i + n + 1; | |
| 47 elseif ~isempty(colheaders{i}) | |
| 48 % Parse a single-value column | |
| 49 parsed.(strrep(colheaders{i}, ' ', '_')) = table.data(:, i); | |
| 50 i = i + 1; | |
| 51 else | |
| 52 error('Empty column'); | |
| 53 end | |
| 54 end | |
| OLD | NEW |